1.5 C# 结构体与枚举

来源:互联网 发布:音乐合成制作软件 编辑:程序博客网 时间:2024/05/16 12:34
day 5 结构体和枚举
1,枚举
枚举是值类型
枚举的语法格式: enum 枚举名
{
枚举值1,枚举值2,枚举值3
}
默认情况下:枚举值从0开始,依次递增
枚举值可以更改的,更改的值的下个值默认情况下加1,而且值不能重复。
枚举和string,int之间的关系
---int转枚举 强制转换 enum e=(enum)1;
---枚举转int 强制转换 int a=(int) Color.BLUE;
---枚举转string string s=Enum。GetName(typeof(Color),3);
---string转枚举 Color c=(Color)Enum.Parse(typeof(Color,"BLUE"));

补充:获取所有的枚举值
Array values=Enum.GetValues(typeof(Color));
int[] intValues=(int [])values;
for(int i=0;i<intValues.Length;i++)
{
Console.WriteLine((Color)intValues[i]);
}
//isDefined检测枚举中是否包含某个枚举值
if(Enum.IsDefined(typeof(Color),2))
{...}else{...}

2,struct
语法格式:
struct 结构体名
{
public int hp;//字段
public 结构体名(参数列表)
{
赋值操作;
}
}
结构体特点:
1,是值类型
2,结构体和类是同级关系
3,结构体内部存在多种成员变量,一般来说,构成成员变量的组成是字段,属性以及函数(方法)
4,实例化结构对象的对象,采用的是new关键字。需要注意的是,此时new关键字的作用仅仅是创建对象,没有开辟任何内存空间,这和类实例化对象是不一样的。
5,结构体没有析构函数。
6,结构体成员--字段要全部赋值
7,结构体成员--字段不可以之间直接被初始化,但是常量字段除外
8,构造函数可以有多个
9,不能在结构体内部调用或者重写默认的构造函数
10,构造函数是特殊的方法,它和一般方法不一样的地方在于不可能存在返回值
11,构造函数方法重载,也就是说构造函数中的参数列表不可以完全相同(类型,数量),它具备方法重载成立的所有判断标准。


3,访问修饰符
public (公有的),所有类都可以访问
private (私有的),只有类可以访问
4,this关键字
在结构体内部,代表结构对象
在类内部,代表类对象
this关键字不可以出现在有static(静态)修饰的方法中
5,新增运算符
&:与运算,对位全是1,结果就是1,否则为0;
|:或运算,对位全是0,结果就是0,否则为1;
原创粉丝点击