C#枚举使用报错CS8803:如何解决顶级语句顺序问题?
错误CS8803的原因及修复方案
问题根源
你遇到的CS8803错误,核心原因是C#的顶级语句(比如直接写在全局的Console.WriteLine)必须放在所有命名空间、类、枚举等类型声明的前面,或者需要把执行逻辑放到一个方法(比如Main方法)内部。你的代码里把枚举声明、成员变量声明放在了顶级语句前面,违反了这个规则。另外,顶级语句的上下文里不能用public修饰变量,因为这里的变量属于局部作用域。
修复方案
方案1:调整语句顺序(简化写法)
把顶级语句移到类型声明前面,同时去掉变量的public修饰符(改用局部变量):
var tila = Ovi.Lukossa; Console.WriteLine(tila); public enum Ovi {Lukossa, Kiinni, Auki};
方案2:使用传统类结构(更规范,适合课程学习)
把执行逻辑放到Main方法中,这是C#程序的标准入口写法:
public enum Ovi {Lukossa, Kiinni, Auki}; class Program { static void Main() { Ovi tila = Ovi.Lukossa; Console.WriteLine(tila); } }
内容的提问来源于stack exchange,提问作者Eino Salama
相关产品推荐
相关产品推荐

