8

で暗黙的に型指定されたローカル変数 (var) について読んでいました

http://msdn.microsoft.com/en-us/library/bb384061.aspx

それは1つの制限を述べています:

var という名前の型がスコープ内にある場合、var キーワードはその型名に解決され、暗黙的に型指定されたローカル変数宣言の一部として扱われません。

C#の例でステートメントの意味を説明できる人はいますか?

4

1 に答える 1

12

これを行う場合:

class var
{
    public static implicit operator var(int value)
    {
        return new var();
    }
}

var myVar = 5;

myVartypeであり、 typevarではありませんint

(operator私が追加したのは、 からintへの暗黙的な変換があるようにするためですvar)。

このルールが挿入されたvarのは、C# の予約済みキーワードではなかった (そしてまだそうではない...ここを見ると「コンテキスト キーワード」であることがわかる) ため、名前付きのクラス/構造体/列挙型varは C# で有効であったためです。 2.0 .

  • var という名前の型がスコープ内にある場合: スコープ内にある var という名前のクラス/構造体/列挙型がある場合 (名前空間を使用することなく、単に var を記述するだけで「到達可能」)

  • 次に、var キーワードがその型名に解決されvarます。「キーワード var」ではなく、「ユーザー定義型」を意味します。

于 2013-08-28T07:25:46.793 に答える