6

C# のグローバル変数に他のスレッドがあることに気付きました。整数、文字列など。

public static int;

しかし、他のスレッドが言及していない「var」を使用する必要があり、

public static var;

動作しないようです。

だから私が求めているのは、C#で「var」をグローバル変数として持つことは可能ですか?

4

2 に答える 2

6

C# 仕様(セクション 26.1)には次のように書かれています。

[`var は] 暗黙的に型指定されたローカル変数宣言です ...

それはさらに続きます:

暗黙的に型指定されたローカル変数宣言内のローカル変数宣言子には、次の制限が適用されます。

  • 宣言子には初期化子を含める必要があります。
  • 初期化子は式でなければなりません。
  • 初期化式には、null 型にできないコンパイル時の型が必要です。
  • ローカル変数の宣言には、複数の宣言子を含めることはできません。
  • 初期化子は、宣言された変数自体を参照できません

いいえ、これはできません。さらに、グローバル変数について考えることさえやめることをお勧めします。

この言語では、グローバル変数はサポートされていません。public staticフィールドで代替を見つけることができますが、これはオブジェクトの状態を漏らし、カプセル化を破ります。

于 2013-01-28T23:00:59.400 に答える
6

いいえ、var 自体は型ではないため、代入の右側にある式の形式をとるだけです。

var num = 1;

以下と同じです:

int num = 1;

メソッドの外側にスコープが設定されている変数を宣言するときは、完全な型指定子を使用する必要があります。

public static int num = 1;

また

public static int Num {get;set;}

于 2013-01-28T22:50:30.313 に答える