You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:C#中出现'An object reference is required...'错误的原因

错误原因及解决方法

错误原因

你遇到的问题是静态方法无法直接访问非静态成员:

  • Main方法是static(静态)的,它属于Program类本身,不需要创建类的实例就能执行。
  • 而你定义的x和y是类的非静态字段,它们属于Program类的实例对象,只有创建了类的实例后才能访问。
    静态成员和非静态成员的生命周期不同,因此静态方法里不能直接调用非静态变量。

解决方法

有两种常用的修复方式:

方式一:将变量改为静态字段

给x和y加上static关键字,让它们成为类的静态成员,这样静态的Main方法就能直接访问:

using System;

namespace HelloWorld
{
  class Program
  {
    static int x = 3; // 添加static关键字
    static int y = 10; // 添加static关键字
    static void Main(string[] args)
    {
        int mathResults = x + y;
        string results = mathResults.ToString();
        Console.WriteLine(results); // 可以输出计算结果
        Console.WriteLine("Hello World!");    
    }
  }
}

方式二:创建类的实例访问非静态变量

在Main方法里实例化Program类,通过实例对象来访问x和y:

using System;

namespace HelloWorld
{
  class Program
  {
    int x = 3;
    int y = 10;
    static void Main(string[] args)
    {
        Program program = new Program(); // 创建类的实例
        int mathResults = program.x + program.y; // 通过实例访问变量
        string results = mathResults.ToString();
        Console.WriteLine(results);
        Console.WriteLine("Hello World!");    
    }
  }
}

内容的提问来源于stack exchange,提问作者jonthey12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 09:35:34