Despite the demise of C# being slightly exaggerated, there are still a lot of interesting blog being written about it. Eric Lippert’s blog has recently published a couple of really good posts on some parts of the C# language. No matter how often you’ve read the specification, or the various annotated guides to the language, Eric always manages to explain the rationale behind parts of the language in a way that I’ve never seen before.
Here he talks about the type of the null literal in C#. And explains that there are several constructs in C# that lead of objects which don’t have a type.
Here he talks about type checking a call to a covariant interface method. And in so doing makes it clear why the type inference mentions upper and lower bounds in the specification.
Here he talks about a probably long term bug in the Microsoft C# compiler, showing the desired fields could be expressed in IL and isn’t expressly forbidden by the C# specification.
In other C# news, I also came across this blog post that discusses the design of the cancellation framework in the TPL. It clearly lays out the reasons for the various parts of the design.