枚举
- 枚举类型是一个自定义类型,属于值类型
- 枚举类型的定义:enum 枚举名 { 枚举值1,枚举值2… }
enum EquipType
{
Helmet,
BodyArmor,
Knapsack,
Knife
}
- 枚举类型变量的定义与使⽤
//例:
EquipType hel = EquipType.Helmet;
EquipType ba = EquipType.BodyArmor;
EquipType knap = EquipType.Knapsack;
//枚举是一个值类型,枚举值还可标记一个整型数字予以匹配,默认从0开始计数
//例:
EquipType.Helmet;//头盔,对应0
EquipType.BodyArmor;//防弹衣,对应1
EquipType.Knapsack;//背包,对应2
- 枚举声明时标记数字
//例:
enum EquipType
{
Helmet = 10,
BodyArmor = 20,
Knapsack = 30,
Knife//此时顺延标记,即31
}
//因此,枚举类型和整型可以进行相互的显式转换
int equipNum = (int)EquipType.Knapsack;
EquipType equipType = (EquipType)10;
Console.WriteLine(myEquip+2);//不会错
结构体
- 结构体类型是⾃定义类型,属于值类型
- 结构体类型的声明:Struct 结构体名 { 结构体内容 }
struct Student
{
//注意:结构体内字段声明不能有初值
public string name;
public char sex;
public int age;
}
- 结构体类型变量声明及字段赋值
//定义⼀个学⽣变量
Student xiaoming;
//学⽣结构内变量赋值
xiaoming.name = "xiaoming";
xiaoming.age = 16;
xiaoming.sex = 'M';
- 结构体的构造函数
构造函数是构造结构体时调用的函数,构造函数在结构体内创建,自定义的构造函数必须给所有的字段进行初始化赋值
//⾃定义构造函数
public Student(string name,char sex,int age)
{
//作⽤:快速给结构体字段赋初值
//⽽且必须给每⼀个字段都赋初值
this.name = name;
this.sex = sex;
this.age = age;
}
- 结构体的初始化(调用构造函数)
//调用默认的构造函数
Student xiaomei = new Student();
//调用自定义的构造函数
Student xiaogang = new Student("xiaogang",'M',18);
访问修饰符
-
所有类型和类型成员都具有可访问性级别,用来控制在其他代码位置能否访问到类型或成员,设置了成员的可访问限制,提高代码的安全性。
-
代码的位置层级划分
-
常用的访问修饰符
访问修饰符 | 说明 |
---|---|
public(公有的) | 同一程序集中的任何其他代码或引用该程序集的其他程序集都可以访问该类型或成员(类型或成员所在⼤括号内和外都可以访问它) |
private(私有的) | 只有同一类或结构中的代码可以访问该类型或成员(类型或成员所在的⼤括号内可以访问,⼤括号外不能访问) |
protected(受保护的) | 只有同一类或结构或者此类的派生类中的代码才可以访问的类型或成员 |
internal(内部的) | 同一程序集中的任何代码都可以访问该类型或成员,但其他程序集中的代码不可以 |
protected internal | 访问限制在当前程序集或从包含派生的类型的类别 |