For another review of the C# language, see my articles in JavaWorld from November and December of last year:
C#: A language alternative or just J--?
Part 1: http://www.javaworld.com/javaworld/jw-11-2000/jw-1122-csharp1.html
Part 2: http://www.javaworld.com/javaworld/jw-12-2000/jw-1222-csharp2.html
C# vs. Java: a debate
After reviewing the language carefully, I believe that while C# has some differences from Java, it essentially targets the same space, and provides real value only to people locked into the Windows platform. There are some neat features, and some IMHO really stupid features; in particular, the absence of mandatory exception declarations is a major blunder.
Of all the C# features, I think automatic primitive wrapping (boxing and unboxing) is the only one that might improve Java. The rest are fluff. But none of these new features make C# a fundamentally different language, in my opinion. C# gives Microsoft a Java-like language (and a developer and customer base) that they can control.