-4
namespace ConsoleApplication
{

    class Program
    {
        static void Main()
        {
            int val = 10;
            fnctest(val);
            Console.WriteLine(val);
        }
        void fnctest(int val)
        {
            val = 200;
        }
    }
}

エラーが表示されます:

An object reference is required for the non-static field, method,
or property 'ConsoleApplication'

このエラーを解決するにはどうすればよいですか?

4

3 に答える 3

4

fnctestメソッドを作成するstaticか、クラスをインスタンス化してメソッドを呼び出します。

static void Main()
{
   int val = 10;
   fnctest(val);
   Console.WriteLine(val);

}
static void fnctest(int val)
{
   val = 200;
} 

または

static void Main()
{
   int val = 10;
   Program p = new Program();
   p.fnctest(val);
   Console.WriteLine(val);

}
void fnctest(int val)
{
   val = 200;
}

読んでくださいStatic Classes and Static Class Members (C# Programming Guide)

于 2013-10-20T13:06:16.417 に答える
0

main メソッドは静的であるため、main.. からのみ静的メソッドを呼び出すことができます。

また、メソッドに渡された元の値を変更する場合に備えて、参照によってパラメーターを渡す必要があります

だから、あなたの方法は

static void fnctest(ref int val)
{
    val = 200;
}

メソッド呼び出しは

fnctest(ref val);
于 2013-10-20T13:07:08.120 に答える
0

次のように宣言fnctestします。static

このような

public static void fnctest(int val)
{
    val = 200;
}

ところで(質問とは関係ありません):

値型と参照型の違いを見つけようとしていると思います。 val値はメソッドで変更され、値に変更があるかどうかを確認するために出力されます。その場合、outパラメータについても学ぶ必要があります。

于 2013-10-20T13:06:21.540 に答える