Garbage collection is the most important, and outweighs the combination of all other advantages.
C# has anonymous functions, i.e. closures, which outweighs the combination of all the advantages below.
C# has an actual module system.
C# has generics, which are more powerful in some ways than C++'s compile-time template system, and less powerful in others -- I would describe them as a little bit less verbose.
C# has extension methods which are cute but only a minor advantage.
You get a little bit more certainty about the various primitive data types -- you know that an int is an Int32.
Did I mention garbage collection?
Unless you're doing low-level numerical computation where processor time is the limiting factor, or unless you're using a lot of C++ libraries, C# is preferable.
Another advantage of C# is that you can use better languages that run on .NET too, like F#, and other languages, like Boo.
Last edited by Rashakil Fol; Jan 26th, 2009 at 11:38 pm.
Reputation Points: 1133
Solved Threads: 171
Super Senior Demiposter
Offline 2,478 posts
since Jun 2005