ホームページ > バックエンド開発 > C++ > C# コードで「非静的フィールド、メソッド、またはプロパティにはオブジェクト参照が必要です」エラーがスローされるのはなぜですか?

C# コードで「非静的フィールド、メソッド、またはプロパティにはオブジェクト参照が必要です」エラーがスローされるのはなぜですか?

Barbara Streisand
リリース: 2025-01-22 05:36:09
オリジナル
426 人が閲覧しました

Why Does My C# Code Throw

C# エラー: 「非静的フィールド、メソッド、またはプロパティにアクセスするにはオブジェクト参照が必要です」

この C# コードでは、Main() メソッド内の Population[i].bits = GetRandomBits(); 行でエラーが発生します。エラー メッセージは「非静的フィールド、メソッド、またはプロパティ 'VM_Placement.Program.GetRandomBits にアクセスするにはオブジェクト参照が必要です」です。 ()」。 このエラーは、非静的メソッド Main() が静的 GetRandomBits() メソッドから呼び出されていることを示します。

C# では、静的メソッドはクラスの特定のインスタンスではなくクラスに関連付けられますが、非静的メソッドはクラスのインスタンスに関連付けられます。これは、非静的メソッドを呼び出すにはクラスのインスタンスが必要であることを意味します。

この特定のケースでは、このエラーを解決するには 2 つの解決策があります:

  • Program クラスのインスタンスを作成します:
<code class="language-csharp">Program p = new Program();
p.GetRandomBits();</code>
ログイン後にコピー

Program クラスのインスタンスを作成すると、GetRandomBits() がインスタンス メソッドになるため、そのインスタンス上で

を呼び出すことができます。
  • GetRandomBits() メソッドを静的にします:
<code class="language-csharp">public static string GetRandomBits()
{
    // ...
}</code>
ログイン後にコピー

GetRandomBits()Main() を静的にし、クラスのインスタンスを必要とせずに静的な

メソッドから直接呼び出せるようにします。

以上がC# コードで「非静的フィールド、メソッド、またはプロパティにはオブジェクト参照が必要です」エラーがスローされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート