46

静的メソッドで静的変数を使用できますか? この変数の値は、メソッドへのすべての呼び出しで保持されますか?

例えば。

public static void MyMethod()
{
    static int x = 0;
    x++;
}
4

3 に答える 3

42

いいえ。

ローカルの静的変数を持つことはできません。

MSDNから:

C# は、静的ローカル変数 (メソッド スコープで宣言されている変数) をサポートしていません。

そしてここに

static 修飾子は、クラス、フィールド、メソッド、プロパティ、演算子、イベント、およびコンストラクターで使用できますが、インデクサー、デストラクター、またはクラス以外の型では使用できません。

ご覧のとおり、ローカル変数は言及されていません


ただし、静的フィールドを使用できます。

public class MyClass
{
    private static int MyVariable = 10;

    public static void MyMethod()
    {
        MyVariable++;
    }
}
于 2010-12-24T10:13:46.507 に答える
9

いいえ、しかしあなたは持つことができます:

private static int x = 0;
public static void MyMethod()
{
     x++;
} 
于 2010-12-24T10:18:11.680 に答える