关键字:struct,enum
1.什么是结构?
(1)和类类似,可以有字段属性方法和事件
(2)是值类型
(3)有实例构造函数和静态构造函数,有默认的无参构造函数,通过new运算符自动调用,但不能有析构函数
(4)不能派生类和从类派生,但可以从接口派生
(5)可以进行装箱和拆箱操作
2.怎么定义一个结构?
public struct MyStruct
{
public string Name;
static MyStruct()
{
//静态构造函数,不能访问实例成员,不能直接调用,不能有访问修饰符
}
public MyStruct( string name)
{
//实例构造函数,必须初始化所有数据成员
if( name == null)
throw new ArgumentException();
this.Name = name;
}
}
{
public string Name;
static MyStruct()
{
//静态构造函数,不能访问实例成员,不能直接调用,不能有访问修饰符
}
public MyStruct( string name)
{
//实例构造函数,必须初始化所有数据成员
if( name == null)
throw new ArgumentException();
this.Name = name;
}
}
3.如何使用结构?
用法类比类的用法。
4.何时使用结构?
(1)当目标类型以数据为主,适合使用结构
(2)当需要一个轻量对象的数组时,适合使用结构
5.什么是枚举?
由一组命名常量组成的数据集合。枚举表达了一种稳定的分类标准。
6.怎么定义一个枚举?
(1)声明一个简单枚举
enum Week : int
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday, //这个逗号可选
}; //这个分号也可选
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday, //这个逗号可选
}; //这个分号也可选
(2)声明一个标志枚举
所谓标志枚举,就是在某些情况下,需要对枚举的各个成员进行组合得到多种状态,所用到的方法。
[System.Flags] //表示为标志枚举
public enum MouseButtons
{
LButton = 0x0001, //数据成员为2的幂次
RButton = 0x0002,
MButton = 0x0004,
};
public enum MouseButtons
{
LButton = 0x0001, //数据成员为2的幂次
RButton = 0x0002,
MButton = 0x0004,
};
7.如何使用枚举?
(1)简单枚举的使用方法很简单。
(2)使用标志枚举:
MouseButtons m = MouseButtons.LButton | MouseButtons.MButton;
//得到一种组合,m称为标志字,使用位逻辑