首页 新闻 会员 周边 捐助

枚举可以在方法中声明吗

2
[已解决问题] 解决于 2019-04-13 18:39

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里面吗?

fangpengcheng_方鹏程的主页 fangpengcheng_方鹏程 | 菜鸟二级 | 园豆:206
提问于:2019-04-03 14:58
< >
分享
最佳答案
-2

枚举声明的位置,是由语法决定的。
它是一种基本数据类型而不是构造数据类型。
你放在函数/方法里面违反了语法规范。
看问题,楼主用的是文本编辑器,而不是IDE,建议用Visual Studio Code 编写代码,可以解决这个问题

奖励园豆:5
布洛克菲勒 | 菜鸟二级 |园豆:218 | 2019-04-04 11:55
其他回答(2)
0

枚举其实就是一种特殊的类,它内部的每一个值就是类的每个实例对象.编译器会自动处理的;每一个枚举类都是继承了Enum抽象类的.
示例:
enum Day{
Sun,
Mon;
}
编译后:
class Day{
static final Day Sun= new Day();
static final Day Mon = new Day();
}
Java内部类(Day)里面是不能声明静态变量(Sun/Mon...)的,所以枚举不可以声明在所有的方法内部.但是不包括静态成员的类是可以声明在方法内部的.
~~望采纳~ ๑乛◡乛๑

Java老王 | 园豆:202 (菜鸟二级) | 2019-04-05 10:04
0

https://www.cnblogs.com/xiongze520/p/10271350.html
看这个,希望对你有帮助

熊泽-学习中的苦与乐 | 园豆:2272 (老鸟四级) | 2019-04-10 16:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册