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

C#无法识别静态Main()作为程序入口点,Visual Studio 2019异常

问题解决

编译器无法识别Main()作为入口点的直接原因是方法修饰符顺序错误:C#要求static修饰符必须放在返回类型(void)之前,你写反成了void static,导致这个方法不是静态方法,而C#程序的入口方法必须是静态的。

另外,即使修正了Main方法的顺序,你还会遇到静态方法无法直接调用实例方法的问题,需要同步调整Paint方法的定义,或者通过类实例调用它。

修正后的完整代码

using System;

namespace Paint
{
    class Program
    {
        // 修正修饰符顺序:static 放在 void 之前
        static void Main(string[] args)
        {
            Paint();
        }

        // 将 Paint 改为静态方法,让静态的 Main 可以直接调用
        static void Paint()
        {
            string[] tiles = new string[256];
            var newkey = Console.Read();
            int paint = Convert.ToInt32(newkey);
            tiles[paint] = "Test";
            Console.WriteLine(tiles[paint]);
            Console.Beep();
            Console.ReadKey();
            Paint();
        }
    }
}

关键说明

  • 程序入口方法的正确签名必须是static void Main(string[] args)(或省略args的static void Main()),修饰符和返回类型的顺序不能颠倒。
  • 静态方法只能直接调用同一类中的静态成员,如果你想保留Paint为实例方法,也可以在Main中创建类实例后调用:
    static void Main(string[] args)
    {
        Program program = new Program();
        program.Paint();
    }
    
    // 保持 Paint 为实例方法
    void Paint()
    {
        // ... 原有代码
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 22:03:22