ホームページ > バックエンド開発 > C++ > C# のインスタンスで静的メンバーにアクセスできないのはなぜですか?

C# のインスタンスで静的メンバーにアクセスできないのはなぜですか?

Barbara Streisand
リリース: 2025-01-27 15:01:10
オリジナル
133 人が閲覧しました

Why Can't I Access Static Members with an Instance in C#?

C# での静的メンバー アクセス: 「インスタンス参照メンバーを使用できません」エラーを解決する

問題: C# プログラムで、インスタンス構文を使用して静的メンバーにアクセスすると、「インスタンス参照を使用してメンバー '(メンバー名)' にアクセスできません」というエラーが発生します。

根本原因:

C# では、VB.NET や Java などの他の言語とは異なり、インスタンス参照を通じて静的メンバーにアクセスできません。静的メンバーは、クラスの単一のインスタンスではなく、クラス自体に属します。

例:

次のコードを考えてみましょう:

<code class="language-csharp">public class MyClass
{
    public static string StaticProperty { get; set; }
    public static MyClass StaticMethod() { /* code */ }
}

public class TestClass
{
    public void Example()
    {
        // 错误:尝试使用实例访问静态属性
        string value = MyClass.StaticProperty; // 编译错误

        // 正确:使用类引用访问静态方法
        MyClass instance = MyClass.StaticMethod();
    }
}</code>
ログイン後にコピー

解決策:

静的メンバーにアクセスするには、クラス名を修飾子として使用します。例:

<code class="language-csharp">string value = MyClass.StaticProperty;</code>
ログイン後にコピー

別の方法:

インスタンス構文を使用してプロパティにアクセスできるようにするには、static 修飾子を削除し、インスタンス プロパティとして宣言します。

<code class="language-csharp">public class MyClass
{
    public string Property { get; set; } // 实例属性
    public static MyClass StaticMethod() { /* code */ }
}

public class TestClass
{
    public void Example()
    {
        // 正确:使用实例访问实例属性
        string value = MyClass.Property; // 这行代码有问题,应该实例化MyClass

        // 正确:使用类引用访问静态方法
        MyClass instance = MyClass.StaticMethod();
    }
}</code>
ログイン後にコピー

静的メンバーとインスタンス メンバーの違いを理解することで、「インスタンス参照を使用してメンバーにアクセスできません」エラーを回避し、C# プログラムでメンバーに正しくアクセスできます。 最初に TestClass オブジェクトをインスタンス化する必要があるため、変更された MyClass.Property では、MyClass へのアクセスは依然として正しくないことに注意してください。 正しいアクセス方法は次のとおりです: MyClass myClassInstance = new MyClass(); string value = myClassInstance.Property;

以上がC# のインスタンスで静的メンバーにアクセスできないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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