C# エラー: 「非静的フィールド、メソッド、またはプロパティにアクセスするにはオブジェクト参照が必要です」
説明:
このエラーは、静的コンテキストから非静的変数、メソッド、またはプロパティにアクセスしようとすると発生します。この例では、静的として宣言された「Main」メソッドが、非静的メソッド「GetRandomBits()」の呼び出しを試みます。
具体的な質問:
提供されたコードでは、「GetRandomBits()」メソッドが「Program」クラスの非静的メソッドとして定義されています。ただし、「Main」メソッドは同じクラス内で静的に宣言されています。この不一致によりエラーが発生しました。
解決策:
この問題には 2 つの解決策が考えられます:
Program クラスのインスタンスを作成します:
「Main」メソッドで、「Program」クラスのインスタンスを作成し、そのインスタンスで「GetRandomBits()」メソッドを呼び出します。
<code class="language-csharp">Program p = new Program(); string bits = p.GetRandomBits();</code>
「GetRandomBits()」を静的に設定します:
あるいは、「GetRandomBits()」メソッドの宣言を変更して静的メソッドにすることもできます。こうすることで、静的な「Main」メソッドから直接呼び出すことができます。
<code class="language-csharp">public static string GetRandomBits() { // ... 方法实现 }</code>
以上がC# で「非静的フィールド、メソッド、またはプロパティにはオブジェクト参照が必要です」というエラーが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。