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
相关产品推荐
相关产品推荐

