In C#, the "Object reference is required to access a non-static field, method, or property" error usually occurs when a static method tries to access a non-static member of the class.
The error in this article occurs in the following line of code in the Main
method:
<code class="language-c#">Population[i].bits = GetRandomBits();</code>
The problem is with the GetRandomBits
method, which is declared as a non-static method in the Program
class. However, the Main
method is defined as a static method, which means it can only access static members of the class.
There are two ways to resolve this error:
1. Create an instance of the class:
Static methods cannot directly access non-static members. To access a non-static method or property from a static method, you first create an instance of the class and then call the method or access the property through that instance. For example:
<code class="language-c#">// 创建 Program 类的实例 Program p = new Program(); // 通过实例调用 GetRandomBits 方法 Population[i].bits = p.GetRandomBits();</code>
2. Make the method static:
Alternatively, you can make it a static method by adding the Program
keyword when declaring the GetRandomBits
method in the static
class. This way, static Main
methods can directly access the GetRandomBits
method without creating an instance. For example:
<code class="language-c#">public static string GetRandomBits() { // 方法实现 }</code>
With either of the above methods, you can eliminate the error and make the Main
method correctly access the GetRandomBits
method.
The above is the detailed content of Why Does C# Throw 'An Object Reference Is Required for the Non-Static Field, Method, or Property'?. For more information, please follow other related articles on the PHP Chinese website!