C# 4.0/BCL 4: What's New Series
Might as well make this a series. I mentioned in the first post, "I have been spending quite a bit of time re-focusing and reviewing C# (and some BCL) fundamentals, with an eye to what's different in C# 4.0/BCL 4.0. The reason for this, is though C# 1.0 was so simple in it's day that it only required a 28 page spec, C#3 and 4 have really gotten away from me such that I'm only making average use of 3.0. I'll write a comparison review of the books I have been using, but for my money, the best and definitive book (as it was in 3.0) is C# 4.0 In A Nutshell (Disclaimer: I was a reviewer for V3 of this book and mentioned in the acknowledgements for this edition as well.
So, it goes something like this:
- Framework 4.0: StructuralComparisons Type
- Framework 4.0: System.Tuple
- More on System.Tuple and Prefer Query Syntax to Loops
- BigInteger class
- Complex class
- New SortedSet collection
- C# 4: Dynamic primitive type Part 1
- C# 4: Dynamic primitive type Part 2
- C# 4: Optional Parameters
- C# 4: Named Arguments
Code Contracts- Generics Covariance and Contravariance
- Direct support for memory-mapped files
- Review: C# 4.0/BCL 4,0 Books
- Lazy file and directory I/O methods that return IEnumerable<T> instead of arrays
- TPL and PLINQ
Note: I have removed Code Contracts. I don't know what I was thinking. They are too much to tackle here in what is supposed to be short posts. It would take a whole series and Kevin has a 14 part series just for them. I will also have to think about what to tackle in TPL and PLINQ. There's a lot there as well.

This is part of a series . Another new type in Framework 4.0 os the BigInteger specialized numeric type. It lives in the new System.Numerics namespace and lets you represent an arbitrarily large integer without any loss of precision, Since C# does not
This is part of a series . Note: This material is from C# 4.0 In A Nutshell Page 239. Like BigInteger, the Complex struct is another specialized numeric type new to Framework 4.0 and is for representing complex numbers with real and imaginary components
Pingback from Markus Tamm » Blog Archive » Links 11.05.2010
This is part of a series . I have to admit. I am non-excited about C# 4 features, including the dynamic type. While C# 3, introduced many neccessaary features, especially for LINQ, but very useful in their own right, C# 4 seems more like a solution looking
This is part of a series . C# 4 allows you to declare optional parameters in methods, constructors, and indexers. A parameter is optional if it specifies a default value in its declaration: void Foo(int x = 42) { Console.WriteLine(x); } Optional parameters
This is part of a series . I really should have combined Named Parameters when I wrote about Optional Parameters last time since they are similar and go well together. Again, nothing thrilling here to speak about in C# 4 (especially since VB has had these
This is part of a series . Last time I started talking about the new dynamic type in C# 4, I covered why they were introduced to the language (scenarios), then some deep discussion of how they are implemented with the DLR, call-sites, and bindings, how
This is part of a series . To add to 3.5's new HashSet<T>, there is now SortedSet<T> new in 4.0. Both have the following distinguishing features: Their Contains methods execute quickly using a hash-based lookup They do not store duplicate