Maison >développement back-end >C++ >Pourquoi ne puis-je pas accéder aux membres statiques en C # en utilisant des références d'instance?

Pourquoi ne puis-je pas accéder aux membres statiques en C # en utilisant des références d'instance?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-27 15:11:111015parcourir

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

Accès aux membres statiques en C #: éviter les erreurs de référence d'instance

En C #, l'accès aux membres statiques nécessite de comprendre leur comportement unique. Contrairement aux membres de l'instance, qui appartiennent à des objets spécifiques, les membres statiques appartiennent à la classe elle-même. Tenter d'accéder à un membre statique à l'aide d'une référence d'instance donne l'erreur: "Member '' Impossible n'est pas accessible avec une référence d'instance."

Syntaxe correcte pour l'accès statique des membres:

La bonne façon d'accéder à un membre statique est via le nom de classe, pas une instance de la classe.

illustrons avec un exemple:

<code class="language-csharp">// Static class members
namespace MyDataLayer.Section1
{
    public class MyClass
    {
        public class MyItem
        {
            public static string Property1 { get; set; }
        }
    }
}</code>

Accès incorrect (en utilisant la référence d'instance):

<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>

Accès correct (en utilisant le nom de classe):

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

public class MyClass
{
    protected void MyMethod()
    {
        someLiteral.Text = MyDataLayer.Section1.MyClass.MyItem.Property1; // Correct!
    }
}</code>

Alternative: supprimer le modificateur static

Si vous devez accéder au membre via une instance, supprimez le mot-clé static de la déclaration du membre:

<code class="language-csharp">public class MyItem
{
    public string Property1 { get; set; } // No longer static
}</code>

Cela fait de Property1 un membre d'instance, permettant à l'accès en utilisant oItem.Property1.

En suivant ces directives, vous pouvez éviter les erreurs courantes lorsque vous travaillez avec des membres statiques en C # et vous assurer que votre code fonctionne correctement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn