Coming from an Unix background I was reluctant to learn C#. I was forced into it by a work assignement. However after some days I started to appreciate the design of some APIs and the fancy language features.

Nice things

Some nice syntactic sugar introduced way before it got to other mainstream languages like C++ or Java.

public class Banana {}

public static IEnumerable<Banana> hoard () {
  // Infinite banana stock !
  while (true)
    yield return new Banana();
}

public static void Main() {
  foreach(var b in hoard())
    Console.WriteLine("Got banana !");
}

More recent features follow the global trend

What I do NOT like

No surprise here, most of the things I dislike were just taken from C++

Stuff that is just different