首页 >后端开发 >C++ >为什么我的 C# 代码抛出'非静态字段、方法或属性需要对象引用”错误?

为什么我的 C# 代码抛出'非静态字段、方法或属性需要对象引用”错误?

Barbara Streisand
Barbara Streisand原创
2025-01-22 05:36:09498浏览

Why Does My C# Code Throw

C# 错误: "需要对象引用才能访问非静态字段、方法或属性"

这段 C# 代码中,Main() 方法内的 Population[i].bits = GetRandomBits(); 行出现错误,错误信息为 "需要对象引用才能访问非静态字段、方法或属性 'VM_Placement.Program.GetRandomBits()'"。 此错误表明,正在从静态 Main() 方法调用非静态方法 GetRandomBits()

在 C# 中,静态方法与类相关联,而不是与类的特定实例相关联,而非静态方法与类的实例相关联。这意味着非静态方法需要类的实例才能调用。

针对此特定情况,有两种解决方案可以解决此错误:

  • 创建 Program 类的实例:
<code class="language-csharp">Program p = new Program();
p.GetRandomBits();</code>

通过创建 Program 类的实例,可以调用该实例上的 GetRandomBits(),因为它现在是一个实例方法。

  • 将 GetRandomBits() 方法设为静态:
<code class="language-csharp">public static string GetRandomBits()
{
    // ...
}</code>

GetRandomBits() 设为静态,允许在静态 Main() 方法中直接调用它,而无需类的实例。

以上是为什么我的 C# 代码抛出'非静态字段、方法或属性需要对象引用”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn