PG日誌

読者です 読者をやめる 読者になる 読者になる

PG日誌

主にc#の事を書いています

c#の推論型

c#


推論型はタイプ数を減らす的な意味でかなり便利です。普通に宣言すると以下のようなコードになるのですが記述はIDEの補助があっても結構文字を打たないといけません。

Dictionary<string, Func<int, bool>> f_dispatcher = 
    new Dictionary<string, Func<int, bool>>();

推論型を使うと以下の通り結構すっきりします。また、上と下のコードは完全に同じ意味になります。

var f_dispatcher = new Dictionary<string, Func<int, bool>>();

ただし、注意したいのは

var result = this.GetTables();

のように右辺から型が判断できない場合、主にメソッドの戻り値などは推論型で受けてしまうと可読性が下がるので避けた方がいいかと思います。

あと、注意したいのは複数のインターフェースを継承したクラスの場合以下のように受けると var が object型になってしまうので注意しましょう。

>|cs

public void Sample(XmlNode parent)
{
foreach(var node in parent.SelectSingleNode("..."))
{
node. // ここまでタイピングするとObject型の候補が表示される
}
}

|