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