Pretty much everything everyone else mentioned, but one huge one to me compared to C/C++ is no more header files Big Smile . Yes this isn't unique to C# but coming from C/C++ it is a very nice improvement (not to mention all the benefits of a managed language).

 

Another one for me is closures as I use it a lot in cases where I have different nested blocks of code running on different threads (even back when I was using .Net 2.0, before things like TPL made this commonplace - I had my own similar parallel library).