版权声明:我的博客我做主! https://blog.csdn.net/lk1822791193/article/details/81415635
前言
我想说:每一个学到的知识,我们要学会去使用!当然我们用到每一个知识都需要去学习!
Struct(结构体)
- 结构体是一个值类型的数据结构。
- 它让一个单一变量可以存储多个数据类型的相关数据。
- 结构体用Struct来声明
struct people
{
public string name;
public string sex;
public int age;
public void say()
{
Console.WriteLine("I am Eric");
}
};
特点:
- 结构可带有方法、字段、索引、属性、运算符方法和事件。
- 结构可定义构造函数,但不能定义析构函数。但是,您不能为结构定义默认的构造函数。默认的构造函数是自动定义的,且不能被改变。
- 结构可实现一个或多个接口。
- 结构成员不能指定类型(如abstract、virtual 或 protected)。
- 当您使用 New 操作符创建一个结构对象时,会调用适当的构造函数来创建结构。
- 如果不使用 New 操作符,只有在所有的字段都被初始化之后,字段才被赋值,对象才被使用。
和类的区别
- 数据类型:类是引用类型,结构体是数值类型
- 继承性:类可以继承,但是结构体不行
- 构造函数:它不会自动声明构造函数
深入
- 存储位置:类的对象声明之后,存储在堆里边!而结构体声明之后,存储在栈里边!
注意:从名字可以看出,堆空间比较大,但是访问速度比较慢!栈空间小,访问速度比较快!
适用场合
有了这些区别,我们就可以知道它适用在什么地方了!
- 对于一些轻量级的对象,假如声明一个含有多个颜色的数组的话, 你可以通过结构体来声明,这样的话,成本会相对较低!(它是通过属性来区分数据的)
- 目标类型只含有一些数据,或者是以数据为主!
Enum(枚举)
它是一组命名整型常量。即一种由一组成为枚举数列表的命名常熟组成的独特类型。
枚举类型是使用 enum 关键字声明的。(值类型)
enum <enum_name> //enum_name枚举的类型名称
{
enumeration list //用逗号分割开的标识符列表
};
枚举的作用:
1.限制用户不能随意赋值,只能在定义枚举的时候列举的值总选择
2.不需要死记每一值是什么,只需要选择相应的值
实例:
class EnumProgram
{
enum Days { Sun, Mon, tue, Wed, thu, Fri, Sat };
static void Main(string[] args)
{
int WeekdayStart = (int)Days.Sun;
int WeekdayEnd = (int)Days.Mon;
Console.WriteLine("Sunday: {0}", WeekdayStart);
Console.WriteLine("Monday: {0}", WeekdayEnd);
Console.ReadKey();
}
}
输出结果:
Sunday:0
Monday:1
注意:
- 枚举的定义,一般和类在同一个级别
- 定义枚举时,枚举的值不能是int类型
- 枚举的变量都可以强制转化为int类型
- 可以在枚举中的值后边加编号,但是不推荐这么做!