淮安公安局淮阴分局:enum s {'a','b','c'}这种定义对吗?

来源:百度文库 编辑:中科新闻网 时间:2024/05/12 16:03:48
为什么?
答案是不对的,不知道原因

你用常量做枚举量当然不可以.如果是enum s{a,b,c}就可以了

好像枚举不能是简单类型的吧,忘了。

C# 程序员参考
enum 关键字用于声明枚举,即一种由一组称为枚举数列表的命名常数组成的独特类型。每种枚举类型均有一种基础类型,此基础类型可以是除 char 类型外的任何整型。声明采用下列形式:

[attributes] [modifiers] enum identifier [:base-type] {enumerator-list} [;]
其中:

attributes(可选)
附加的声明性信息。有关属性和属性类的更多信息,请参见 17. 属性。
modifiers(可选)
允许使用的修饰符有 new 和四个访问修饰符。
identifier
enum 名称。
base-type(可选)
指定分配给每个枚举数的存储大小的基础类型。可以是除 char 类型外的整型之一。默认为 int。
enumerator-list
由逗号分隔的枚举数标识符,也可以包括值分配。
备注
枚举元素的默认基础类型为 int。默认情况下,第一个枚举数的值为 0,后面每个枚举数的值依次递增 1。例如:

enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri};
在此枚举中,Sat 为 0,Sun 为 1,Mon 为 2,依此类推。枚举数可以具有重写默认值的初始值设定项。例如:

enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};
在此枚举中,强制元素序列从 1 而不是 0 开始。

enum E 的默认值为表达式 (E)0 产生的值。

基础类型指定为每个枚举数分配的存储大小。但是,从 enum 类型到整型的转换需要用显式类型转换来完成。例如,下列语句使用从 enum 到 int 的显式转换,将枚举数 Sun 赋给 int 类型的变量:

int x = (int) Days.Sun;
有关枚举类型的更多信息,请参见 14. 枚举。

示例 1
在此例中,声明了一个枚举 Days。两个枚举数被显式转换为 int 并被赋给 int 变量。

// keyword_enum.cs
// enum initialization:
using System;
public class EnumTest
{
enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};

public static void Main()
{
int x = (int) Days.Sun;
int y = (int) Days.Fri;
Console.WriteLine("Sun = {0}", x);
Console.WriteLine("Fri = {0}", y);
}
}
输出
Sun = 2
Fri = 7
注意:如果从 Sat=1 中移除初始值设定项,结果将是:

Sun = 1
Fri = 6
示例 2
在此例中,base-type 选项用于声明成员为 long 类型的 enum。注意:即使枚举的基础类型为 long,仍必须通过显式转换将枚举成员显式转换为 long 类型。

// keyword_enum2.cs
// Using long enumerators
using System;
public class EnumTest
{
enum Range :long {Max = 2147483648L, Min = 255L};
public static void Main()
{
long x = (long) Range.Max;
long y = (long) Range.Min;
Console.WriteLine("Max = {0}", x);
Console.WriteLine("Min = {0}", y);
}
}
输出
Max = 2147483648
Min = 255