静的メソッドで静的変数を使用できますか? この変数の値は、メソッドへのすべての呼び出しで保持されますか?
例えば。
public static void MyMethod()
{
static int x = 0;
x++;
}
静的メソッドで静的変数を使用できますか? この変数の値は、メソッドへのすべての呼び出しで保持されますか?
例えば。
public static void MyMethod()
{
static int x = 0;
x++;
}
いいえ。
ローカルの静的変数を持つことはできません。
MSDNから:
C# は、静的ローカル変数 (メソッド スコープで宣言されている変数) をサポートしていません。
そしてここに:
static 修飾子は、クラス、フィールド、メソッド、プロパティ、演算子、イベント、およびコンストラクターで使用できますが、インデクサー、デストラクター、またはクラス以外の型では使用できません。
ご覧のとおり、ローカル変数は言及されていません。
ただし、静的フィールドを使用できます。
public class MyClass
{
private static int MyVariable = 10;
public static void MyMethod()
{
MyVariable++;
}
}
いいえ、しかしあなたは持つことができます:
private static int x = 0;
public static void MyMethod()
{
x++;
}