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

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

Linda Hamilton
リリース: 2025-01-22 05:26:09
オリジナル
208 人が閲覧しました

Why Am I Getting a

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

説明:

このエラーは、静的コンテキストから非静的変数、メソッド、またはプロパティにアクセスしようとすると発生します。この例では、静的として宣言された「Main」メソッドが、非静的メソッド「GetRandomBits()」の呼び出しを試みます。

具体的な質問:

提供されたコードでは、「GetRandomBits()」メソッドが「Program」クラスの非静的メソッドとして定義されています。ただし、「Main」メソッドは同じクラス内で静的に宣言されています。この不一致によりエラーが発生しました。

解決策:

この問題には 2 つの解決策が考えられます:

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

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

    Program p = new Program();
    string bits = p.GetRandomBits();
    ログイン後にコピー
  2. 「GetRandomBits()」を静的に設定します:

    あるいは、「GetRandomBits()」メソッドの宣言を変更して静的メソッドにすることもできます。こうすることで、静的な「Main」メソッドから直接呼び出すことができます。

    public static string GetRandomBits()
    {
        // ... 方法实现
    }
    ログイン後にコピー

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

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