1. 枚举
a) 枚举类型是一种特殊的值类型,它用于声明一组具有相同性质的常量,
b) 声明枚举
在C#中使用关键字enum类声明枚举,其形式如下。
enum 枚举名 { List1=value1, List2=value2, List3=value3, …. ListN=valueN; }
|
其中,大括号{}的内容为枚举值列表,每个枚举值均对应一个枚举值名称,value1~valueN为整数数据类型,List1~ListN则为枚举值的标识名称。
如果枚举没有初始化, 即省掉"=整型常数"时, 则从第一个标识符开始, 顺次赋给标识符0, 1, 2, ...。但当枚举中的某个成员赋值后, 其后的成员按依次加1的规则确定其值。
c) 枚举成员访问
你可以在任何需要使用符号常量的位置使用枚举类型, 但是如果你想得到枚举类型所代表的整型值就得对其转型,语法:
枚举名.成员名
(int)枚举名.成员名
2. 结构
结构是C#程序员用来定义自己的值类型的最普遍的机制。结构比枚举更强大,因为它提供函数、字段、构造函数、操作符和访问控制。结构类型也是先声明后使用。声明结构类型时要使用struct关键字
A) 定义结构
语法: struct 结构名 { //结构成员定义 }
例子:struct MyCat
{
public int age;
public string name;
}
B) 结构成员
结构成员可分为两类,一是实例成员,一是静态成员。静态成员通过结构名来访问,而实例成员的访问是通过创建结构类型的变量来访问结构的实例成 员。结构的构造函数必须带参数
结构名 变量名;
3. 结构和枚举的区别:
1)结构中的成员可以赋值;枚举是取值,只读的
2)结构是跟类很相似的一种数据结构;而枚举是一个有限的整数序列
3)结构是值类型,当显示的定义带参的构造函数时,默认的无参构造函数依然存在,结构不能继承,但可实现接口;
而枚举也是值类型,它是一组已命名的数值常量,它有助于定义具有一组特定值的数据类型,主要总结为 :确定并有限,不会出现非安全值。
4)定义结构的关键字是:static ;定义枚举的关键字是:enum
4.类和结构的区别:
1) 结构属于值类型,结构的值是直接存储在栈空间中的;
类属于引用类型,类的值是存储在托管堆中,在栈空间中保存指向该托管堆的内存地址。
2) 结构当显示的定义带参的构造函数时,默认的无参构造函数依然存在;
类当显示的定义带参的构造函数时,默认的无参构造函数就不存在了
3) 结构不能继承,但可实现接口;类可以继承,也可以实现接口。
4) 结构的关键字:static;类的关键字是class