示例:
enum Season { Spring,Summer,Fall,Winter}
class Program
{
static void Main(string[] args)
{
Season s = Season.Spring;
Console.WriteLine(s);
}
}
定义一个Season类型的枚举变量s,为枚举中定义的Spring,打印输出s,结果为Spring;
Season s = Season.Spring;
Console.WriteLine(s);
s++;
Console.WriteLine(s);
定义一个Season类型的枚举变量s,为枚举中定义的Spring(枚举中的第1个),执行s++操作,s变为Summer(枚举中的第2个);
Console.WriteLine(s);
s = (Season)3;//将s通过显示转换赋值为3,
Console.WriteLine(s);
定义一个Season类型的枚举变量s,为枚举中定义的Spring(枚举中的第1个),s执行赋值操作,s变为Winter(枚举中的第4个);
可以看出
其实枚举定义的是一个int的变量,我们可以按照int类型的++操作对枚举变量进行操作,也可以对变量进行赋值操作(通过显式转换)。
该int变量就像数组下标一样,是从0开始的。
Console.WriteLine(s);
s++;
Console.WriteLine(s);
定义一个Season类型的枚举变量s,为枚举中定义的Winter(枚举中的第最后一个),s执行赋值操作,s变为4(超出枚举,直接显示变量的值);
Season s = Season.Spring;
Season s1 = s;
Console.WriteLine(s);
Console.WriteLine(s1);
s++;
Console.WriteLine(s);
Console.WriteLine(s1);
定义一个Season类型的枚举变量s,为枚举中定义的Spring,并且把s的值给s1,打印输出s和s1的值。结果都是Spring。
执行s++操作,s变为Summer,s1不变。
枚举用作参数:
enum Season { Spring,Summer,Fall,Winter}
struct Da
{
public Season sea;
public Da(Season s)
{
sea = s;
}
};
class Program
{
static void Main(string[] args)
{
Da d;
d.sea = Season.Winter;
Console.WriteLine(d.sea);
Da d1 = new Da();
Console.WriteLine(d1.sea);//调用的是空构造,成员被置为默认值,所以输出默认为枚举的第一个
Da d2 = new Da(Season.Fall);
Console.WriteLine(d2.sea);
}
}