一周学会C#(枚举一)

王朝c#·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

一周学会C#(枚举一)

C#才鸟(QQ:249178521)

1.类型

· 值类型

w 变量直接包含它们自己的数据

w 局部变量总是放在栈(stack)中

· 引用类型

w 变量间接指向它们的数据

w 局部变量指向堆(heap)中的对象

枚举(enum) 值类型

结构(struct) 值类型

类(class) 引用类型

接口(interface) 引用类型

数组([ ]array ) 引用类型

委托(delegate) 引用类型

你可能对上面的例子感到奇怪,c#中的内在类如int,double怎么没有。C#规定这些内在类属于结构,C#称之为简单类型。简单类型和用户自定义类型之间的最大区别是前者有字面表达式(如42),而后者没有。

当然,还有第三种类型:指针。但指针只用在由unsafe关键字标识的非安全的代码中。

2.枚举类型

· 它是一个用户声明的值类型

enum Suit

{

Clubs, Diamonds, Hearts, Spades

}

//Suit表示一副牌,它有4个花色:梅花(Clubs),方块(Diamonds),红心(Hearts),//黑桃(Spades)

sealed class Example

{

static void Main()

{

...

Suit lead = Spades; //错误

...

Suit trumps = Suit.Clubs; //正确

...

}

}

枚举的声明可以出现在类声明的相同地方。

枚举的声明包括名字、访问权限、内在的类型和枚举的成员。

枚举中声明的常量的范围是定义它们的枚举,换言之,下面的例子是错误的:

Suit trumps = Clubs;

Clubs必须被限制为Suit的一个成员,就如下面:

Suit trumps = Suit.Clubs;

3.枚举的注意点

· 枚举值缺省为int

w 你可以选择任一内在的整数类型

w 但不能是字符型

enum Suit : int //内在类型是int,可以省略

{

Clubs,

Diamonds,

Hearts = 42, //成员的取值缺省为前一个成员取值+1,但可以自己赋初值

Spades, //最后一个分号是可选的

};//可以有结尾分号

枚举类可以显式的声明它的内在类型是sbyte, byte, short, ushort, int, uint, long, ulong。如果一个枚举类没有显式声明它的内在类型,则缺省为int。

成员的取值必须和枚举声明的内在类型相同,并且必须在内在类型的范围之内(例如,你不能让成员的取值为负数,而枚举的内在类型是uint)。

如果成员没有被赋值, 那么它的取值是前一个成员取值+1,第一个成员的缺省值是1。枚举的成员的取值可以有相同的取值。

最后一个枚举成员可以使用一个结尾分号,这使得你将来可以很方便地加入更多的成员。

枚举成员的访问权限隐含为public。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有  導航