で暗黙的に型指定されたローカル変数 (var) について読んでいました
http://msdn.microsoft.com/en-us/library/bb384061.aspx
それは1つの制限を述べています:
var という名前の型がスコープ内にある場合、var キーワードはその型名に解決され、暗黙的に型指定されたローカル変数宣言の一部として扱われません。
C#の例でステートメントの意味を説明できる人はいますか?
で暗黙的に型指定されたローカル変数 (var) について読んでいました
http://msdn.microsoft.com/en-us/library/bb384061.aspx
それは1つの制限を述べています:
var という名前の型がスコープ内にある場合、var キーワードはその型名に解決され、暗黙的に型指定されたローカル変数宣言の一部として扱われません。
C#の例でステートメントの意味を説明できる人はいますか?
これを行う場合:
class var
{
public static implicit operator var(int value)
{
return new var();
}
}
var myVar = 5;
はmyVar
typeであり、 typevar
ではありませんint
。
(operator
私が追加したのは、 からint
への暗黙的な変換があるようにするためですvar
)。
このルールが挿入されたvar
のは、C# の予約済みキーワードではなかった (そしてまだそうではない...ここを見ると「コンテキスト キーワード」であることがわかる) ため、名前付きのクラス/構造体/列挙型var
は C# で有効であったためです。 2.0 .
var という名前の型がスコープ内にある場合: スコープ内にある var という名前のクラス/構造体/列挙型がある場合 (名前空間を使用することなく、単に var を記述するだけで「到達可能」)
次に、var キーワードがその型名に解決されvar
ます。「キーワード var」ではなく、「ユーザー定義型」を意味します。