C# エラー: 「非静的フィールド、メソッド、またはプロパティにアクセスするにはオブジェクト参照が必要です」
この C# コードでは、Main()
メソッド内の Population[i].bits = GetRandomBits();
行でエラーが発生します。エラー メッセージは「非静的フィールド、メソッド、またはプロパティ 'VM_Placement.Program.GetRandomBits にアクセスするにはオブジェクト参照が必要です」です。 ()」。 このエラーは、非静的メソッド Main()
が静的 GetRandomBits()
メソッドから呼び出されていることを示します。
C# では、静的メソッドはクラスの特定のインスタンスではなくクラスに関連付けられますが、非静的メソッドはクラスのインスタンスに関連付けられます。これは、非静的メソッドを呼び出すにはクラスのインスタンスが必要であることを意味します。
この特定のケースでは、このエラーを解決するには 2 つの解決策があります:
<code class="language-csharp">Program p = new Program(); p.GetRandomBits();</code>
Program クラスのインスタンスを作成すると、GetRandomBits()
がインスタンス メソッドになるため、そのインスタンス上で
<code class="language-csharp">public static string GetRandomBits() { // ... }</code>
GetRandomBits()
Main()
を静的にし、クラスのインスタンスを必要とせずに静的な
以上がC# コードで「非静的フィールド、メソッド、またはプロパティにはオブジェクト参照が必要です」エラーがスローされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。