@var madness
Anon, Robert: the most important thing about the var keyword in C# is that it can only be used when declaring and initializing in a single statement. So you can't say
var x;
x = 1;
You have to say
var x = 1;
which will declare x as an int for the life of the variable: you can't assign a string value to it later. As Keith says, it's not particularly useful when dealing with ints, strings and so on, and in my code I still use the type name for those. And when you're creating a new instance, it's still easier (IMO) to specify the type and let Intellisense fill in the "new" bit.
But it is necessary for the anonymous types and LINQ stuff, and it's also pretty useful when you're getting an object back from a method and you don't want to type the whole namespace-qualified class name. I really like being able to say
var cn = Server.GetConnection();
var cmd = cn.CreateCommand();
...
var dr = cmd.ExecuteReader();
It's also important to note that Intellisense knows what type the variable is and provides the methods/properties just as if you'd specified the type name.
HTH.