ホームページ >バックエンド開発 >C++ >「非静的フィールドにはオブジェクト参照が必要です」というメッセージが C# で発生するのはなぜですか?また、それを修正するにはどうすればよいですか?

「非静的フィールドにはオブジェクト参照が必要です」というメッセージが C# で発生するのはなぜですか?また、それを修正するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-22 05:19:10585ブラウズ

Why Does

C# エラー: 「非静的フィールドを使用するにはオブジェクトへの参照が必要です」

この C# コードには 2 つのクラスが含まれています。1 つはアルゴリズム パラメーターを定義し、もう 1 つはアルゴリズムを実装します。 2 番目のクラスの Main メソッドで、次のエラーが発生します:

<code>需要对象的引用才能使用非静态字段、方法或属性 'VM_Placement.Program.GetRandomBits()'</code>

このエラーは、Main メソッドが静的であり、GetRandomBits() で非静的メソッドを呼び出そうとしていることが原因です。

解決策:

この問題を解決するには、次の 2 つの方法を選択できます:

  1. Program クラスのインスタンスを作成します:

    Main メソッドで、Program クラスのインスタンスを作成し、そのインスタンスで GetRandomBits() を呼び出します。

    <code class="language-csharp">Program p = new Program();
    string bits = p.GetRandomBits();</code>
  2. GetRandomBits() メソッドを静的にします:

    メソッド宣言を変更して静的メソッドにします: GetRandomBits()

    <code class="language-csharp">public static string GetRandomBits()
    {
        ...
    }</code>
メソッドを静的にした後は、

クラスのインスタンスを作成せずにメソッドを直接呼び出すことができます。 Program

以上が「非静的フィールドにはオブジェクト参照が必要です」というメッセージが C# で発生するのはなぜですか?また、それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。