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

インスタンス参照を使用してC#の静的メンバーにアクセスできないのはなぜですか?

Mary-Kate Olsen
リリース: 2025-01-27 15:11:11
オリジナル
967 人が閲覧しました

Why Can't I Access Static Members in C# Using Instance References?

c#で静的メンバーへのアクセス:インスタンス参照エラーを回避

C#では、静的メンバーにアクセスするには、独自の動作を理解する必要があります。 特定のオブジェクトに属するインスタンスメンバーとは異なり、静的メンバーはクラス自体に属します。 インスタンスリファレンスを使用して静的メンバーにアクセスしようとすると、エラーが発生します。「メンバー」」には、インスタンス参照でアクセスできません。 ">

静的メンバーアクセスの正しい構文:

静的メンバーにアクセスする正しい方法は、クラスのインスタンスではなく、クラス名を使用することです。

例:

を説明しましょう

誤ったアクセス(インスタンス参照を使用):
<code class="language-csharp">// Static class members
namespace MyDataLayer.Section1
{
    public class MyClass
    {
        public class MyItem
        {
            public static string Property1 { get; set; }
        }
    }
}</code>
ログイン後にコピー

正しいアクセス(クラス名を使用):
<code class="language-csharp">using MyDataLayer.Section1;

public class MyClass
{
    protected void MyMethod()
    {
        MyClass.MyItem oItem = new MyClass.MyItem(); 
        someLiteral.Text = oItem.Property1; // Error!
    }
}</code>
ログイン後にコピー

<code class="language-csharp">using MyDataLayer.Section1;

public class MyClass
{
    protected void MyMethod()
    {
        someLiteral.Text = MyDataLayer.Section1.MyClass.MyItem.Property1; // Correct!
    }
}</code>
ログイン後にコピー
代替手段:

modifier staticを削除します インスタンス経由でメンバーにアクセスする必要がある場合は、メンバーの宣言から

キーワードを削除します。

staticこれにより、

<code class="language-csharp">public class MyItem
{
    public string Property1 { get; set; } // No longer static
}</code>
ログイン後にコピー
を使用してアクセスを許可します。

これらのガイドラインに従うことにより、C#の静的メンバーと連携するときに一般的なエラーを回避し、コードが正しく機能することを確認できます。

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

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