0

私のサンプルコード:

public partial class Service1 : ServiceBase
{
    object a = new object ();

    static void methodA()
    {
        string[] tests = {"test1","test2","test3"}
        foreach(string test in tests)
        {
            a.SetValue(""); //object a cannot be seen
        }
    }
}

オブジェクトが見えません。forループ内でオブジェクトを使用するにはどうすればよいですか?

4

3 に答える 3

6

あなたの方法はstaticです。静的メソッドから非静的フィールドにアクセスすることはできません。メソッド(または変数)が静的であると想定されているかどうかを検討し、

  1. staticキーワードで変数を宣言する
  2. staticメソッド宣言からキーワードを削除します

これが静的です(C#リファレンス)

于 2012-09-13T02:27:12.457 に答える
4

オブジェクトは静的ではありませんが、メソッドは静的です。宣言を次のように変更します。

static Object a = new Object ();

ループ内からアクセスできます。

他のオプションは、メソッドをではないようにすることstaticです。どちらを選択するかは、実際に必要な動作によって異なります。

于 2012-09-13T02:26:59.063 に答える
1

メソッドは静的であるため、オブジェクトにアクセスできません。オブジェクトも静的にしてみてください。

于 2012-09-13T02:29:43.353 に答える