かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

C#3.0の型推論

ここに触発された。

前にも何処かで書いた記憶があるけどC#3.0で追加されるvarについて。
ローカル変数に対して、型が明らかな場合は型名をvarと書いて省略できるようになる機能。

例えば下のようなコード

int a = 10; // aがintなのは明らか
MyClass b = new MyClass() // bがMyClassなのは明らか

varを使うように書き換えるとこうなる。

var a = 10;
var b = new MyClass();

ちょっとした機能だけど、プログラマの思考を中断させない素敵な機能だと思ってます。
例えば、こんなケース。

  1. えっと、アレをするにはこのデータが必要だな
  2. このデータを取得するには、このクラスのこのメソッドだ
  3. えっと戻り値の型はBだから変数の宣言をしなきゃ
  4. ↑の右辺にデータ取得のメソッド書かなきゃ

ちょびっとしたことだけど、こんな事の積み重ねでコードってできていくと思います。
varがあるとこうなる!

  1. えっと、アレをするにはこのデータが必要だな
  2. このデータを取得するには、このクラスのこのメソッドだ
  3. var bって書いちゃえ
  4. ↑の右辺にデータ取得のメソッド書かなきゃ

3の部分が楽になったような気がしない?
俺の場合は、よくメソッドの戻り値の型名がなんだったかを調べたりするのが結構手間だったりするのでこれは大きい!


受け取ったデータを使うときに結局どんな型か思い出さなきゃいけないというのはあるけど、ここで思い出すのがメンドイのは正確な型名。
受け取ったデータをどう使うかなんてインテリセンス様が教えてくれる。
という脳みそをガンガン堕落させてくれる。
あれ?これいい機能?