暗黙の型付け; なぜローカル変数だけなのか? 質問する

暗黙の型付け; なぜローカル変数だけなのか? 質問する

暗黙的な型付けがローカル変数に限定される理由を知っている人、または推測したい人はいますか?

var thingy = new Foo();

でも、なぜダメなのか...

var getFoo() {
    return new Foo(); 
}

ベストアンサー1

Eric Lippert 氏はこの件に関してブログ記事を書いています。

要約すると、主な問題は、これを行うには C# コンパイラの大幅な再設計が必要になることです。宣言は現在、1 回のパスで処理されます。推論された変数間で循環を形成する可能性があるため、複数のパスが必要になります。VB.NET にもほぼ同じ問題があります。

おすすめ記事