En C#, l'erreur « Une référence d'objet est requise pour accéder à un champ, une méthode ou une propriété non statique » se produit généralement lorsqu'une méthode statique tente d'accéder à un membre non statique de la classe.
L'erreur dans cet article se produit dans la ligne de code suivante dans la méthode Main
:
<code class="language-c#">Population[i].bits = GetRandomBits();</code>
Le problème vient de la méthode GetRandomBits
, qui est déclarée comme méthode non statique dans la classe Program
. Cependant, la méthode Main
est définie comme une méthode statique, ce qui signifie qu'elle ne peut accéder qu'aux membres statiques de la classe.
Il existe deux manières de résoudre cette erreur :
1. Créez une instance de la classe :
Les méthodes statiques ne peuvent pas accéder directement aux membres non statiques. Pour accéder à une méthode ou une propriété non statique à partir d'une méthode statique, vous créez d'abord une instance de la classe, puis appelez la méthode ou accédez à la propriété via cette instance. Par exemple :
<code class="language-c#">// 创建 Program 类的实例 Program p = new Program(); // 通过实例调用 GetRandomBits 方法 Population[i].bits = p.GetRandomBits();</code>
2. Rendre la méthode statique :
Alternativement, vous pouvez en faire une méthode statique en ajoutant le mot-clé Program
lors de la déclaration de la méthode GetRandomBits
dans la classe static
. De cette façon, les méthodes Main
statiques peuvent accéder directement à la méthode GetRandomBits
sans créer d'instance. Par exemple :
<code class="language-c#">public static string GetRandomBits() { // 方法实现 }</code>
Avec l'une ou l'autre des méthodes ci-dessus, vous pouvez éliminer l'erreur et faire en sorte que la méthode Main
accède correctement à la méthode GetRandomBits
.
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!