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

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

Barbara Streisand
发布: 2025-01-22 05:36:09
原创
424 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板