using System;
namespace ns{
class aa{
static void Main(string[] args){
enum Day { Sun, Mon, Tue, Wed, Thu, Fri, Sat }; //放在main方法中为什么不可以
int y = (int)Day.Fri;
Console.WriteLine(Day.Sun);
Console.WriteLine("Fri = {0}", y);
}
}
}
报错:
c:\program\bb.cs(6,34): error CS1513: } expected
c:\program\bb.cs(9,26): error CS1519: Invalid token '(' in class, struct, or interface member declaration
c:\program\bb.cs(9,34): error CS1519: Invalid token ')' in class, struct, or interface member declaration
c:\program\bb.cs(10,26): error CS1519: Invalid token '(' in class, struct, or interface member declaration
c:\program\bb.cs(10,41): error CS1519: Invalid token ')' in class, struct, or interface member declaration
c:\program\bb.cs(15,1): error CS1022: Type or namespace definition, or end-of-file expected
枚举必须放在class aa里面吗?
枚举声明的位置,是由语法决定的。
它是一种基本数据类型而不是构造数据类型。
你放在函数/方法里面违反了语法规范。
看问题,楼主用的是文本编辑器,而不是IDE,建议用Visual Studio Code 编写代码,可以解决这个问题
枚举其实就是一种特殊的类,它内部的每一个值就是类的每个实例对象.编译器会自动处理的;每一个枚举类都是继承了Enum抽象类的.
示例:
enum Day{
Sun,
Mon;
}
编译后:
class Day{
static final Day Sun= new Day();
static final Day Mon = new Day();
}
Java内部类(Day)里面是不能声明静态变量(Sun/Mon...)的,所以枚举不可以声明在所有的方法内部.但是不包括静态成员的类是可以声明在方法内部的.
~~望采纳~ ๑乛◡乛๑