Coming from Java, C# was very easy to pick up. It is very nearly Java except it has Enums, inner exceptions, a foreach operator that iterates over collections that implement a certain interface, the ability to associate metadata with classes, properties, and methods, which makes using reflection an absolute breeze (Reflection in Java is a little crufty).
Some of these features are in Java 1.5 Tiger, and I look forward to working with them there, too, as these two languages leapfrog each other.
We used to call C# “D-flat,” but I don’t anymore.
