var foo=(T)null

よくやる。最近var中毒かもしれない。
他がvarだらけなので頭を揃えたいというのは思ったりします。

var foo = Enumerable.Range(1,123);
IEnumerable<int> bar = null;

var foo = Enumerable.Range(1,123);
var bar = (IEnumerable<int>)null;

そもそもnull初期化したい訳じゃないのだけど

いずれにせよ型名を書かないといけないので、極力nullで初期化するのは避けたいのですが、必要になることもあります。

var type = GetEncodingType();
switch(type){
    case EncType.UTF8:
        var enc = Encoding.UTF8;
        break;
    case EncType.SJIS:
        var enc = Encoding.GetEncoding("cp932");
        break;
}
var bytes = enc.GetBytes("ほげほげ"); // encが見えない!!

ので仕方なく

var type = GetEncodingType();
var enc = (Encoding)null;
switch(type){
    case EncType.UTF8:
        enc = Encoding.UTF8;
        break;
    case EncType.SJIS:
        enc = Encoding.GetEncoding("cp932");
        break;
}
var bytes = enc.GetBytes("ほげほげ");

こうなると。
EncType->Encodingの関数を作るのも、ここでしか使わないとなると面倒で・・・。