I can't speak directly to the differences with Unity, but comparing C# from .NET 2.0 to the latest you're missing: LINQ, dynamic data types, extension methods, optional and named method parameters, covariance and contravariance, async and await... and a whole bunch I'm probably forgetting. It's a lot more flexible now and lets you take advantage of dynamic/functional code. After coding in 4/4.5 for awhile, I certainly wouldn't want to go back to a 2.0 ecosystem.