C#は静的型づけの言語なので、varもあくまで型推論で静的な型が決定するものです。
var hoge = new Hoge(); hoge = new Piyo(); // ←エラーになる
なので、varの宣言時にnullを代入しようとすると、型が推論できないのでエラーになります。そういうときはdefaultキーワードを用います。
var hoge = null; // ←エラーになる var piyo = default(Piyo);
defaultキーワードはまた、ジェネリクスの定義内でも用いられます。default(Type)は、数値型の場合は0で、 参照型の場合はnull、構造体の場合は全てのメンバが0ないしnullになります。