So when I heard about C# 2.0 having Generics and a bunch of other stuff, I simply tuned out all the other stuff, because at a brief glance, they didn't seem all that important to me. Generics was my new best friend, and by gosh that's the important part.
In my most recent project, Generics have been used to significantly improve my code, but there are a lot of places where I found myself doing things, and saying to myself "There's got to be a better way!". Today, I was just randomly flirting around the internet, and I came across an article about the new C# 2.0 features (hello and welcome to last year and such, yeah yeah), and I decided to finally sit down and read it.
I've found myself coding around things in C# that I wanted to accomplish, but didn't realise that C# already supported them.
That'll learn me.
Anonymous methods. Well damn. These will help greatly with a lot of things where I have 5 billion tiny little one-use functions. I wish I had known about these sooner.
Property visibilities. Well double damn. How many times did I abandon using a property and went to using two functions simply because I wanted a public get and a protected set? Many.
Static classes. No more "cleverly private default constructors" for me, thank you!
So, I guess the lesson to be learned here is: Read about the new features of the tools you use. You may save yourself a lot of time.