枚举
1.枚举也是一种数据类型,只不过可自行定义
2.当我们需要重复的使用一些数据时,为了避免各自开发时命名的不同,使用枚举类型来规范数据的值
比如说周一到周日,可以写成“周一”,“星期一”,“monday
3.一般在命名空间下定义枚举,这样在该命名空间下的所有的类都可以使用该枚举
4.语法
结构体
1.结构体是一种值类型,用于封装一些小型变量的数据,相当于一个迷你版的对象
2.用法
结构体与类的区别
类和结构有以下几个基本的不同点:
- 类是引用类型,结构是值类型。
- 结构不支持继承。
- 结构不能声明默认的构造函数
- 结构体中声明的字段无法赋予初值,类可以
- 类的对象是存储在堆空间中,结构存储在栈中。堆空间大,但访问速度较慢,栈空间小,访问速度相对更快。故而,当我们描述一个轻量级对象的时候,结构可提高效率,成本更低。当然,这也得从需求出发,假如我们在传值的时候希望传递的是对象的引用地址而不是对象的拷贝,就应该使用类了。
结构和类的区别:
- 1、结构是值类型,它在栈中分配空间;而类是引用类型,它在堆中分配空间,栈中保存的只是引用。
- 2、结构类型直接存储成员数据,让其他类的数据位于堆中,位于栈中的变量保存的是指向堆中数据对象的引用。
C# 中的简单类型,如int、double、bool等都是结构类型。如果需要的话,甚至可以使用结构类型结合运算符运算重载,再为 C# 语言创建出一种新的值类型来。
由于结构是值类型,并且直接存储数据,因此在一个对象的主要成员为数据且数据量不大的情况下,使用结构会带来更好的性能。
结构和类的适用场合分析:
- 1、当堆栈的空间很有限,且有大量的逻辑对象时,创建类要比创建结构好一些;
- 2、对于点、矩形和颜色这样的轻量对象,假如要声明一个含有许多个颜色对象的数组,则CLR需要为每个对象分配内存,在这种情况下,使用结构的成本较低;
- 3、在表现抽象和多级别的对象层次时,类是最好的选择,因为结构不支持继承。
类
1.用于描述事物特征
2.用法
[访问修饰符] class 类名(被中括号括起来表示可写可不写)
{
类的描述信息;
}
访问修饰符:描述一个类的访问权限
class:声明,关键字
类的描述信息:描述这类事物的特征(字段,属性,方法)
创建一个类
对象
通过类实例化出来的就是对象
语法:
类名 对象名=new 类名();
类名:描述这个对象的类,可以是我们自己定义的,也可以是系统提供的
对象名:我们要通过这个类创建出来的一个具体的个体的名称
new:关键字,实例化的意思,new 类名(),就是实例化一个类的对象,通过这个类创建出来一个具体的对象
类与对象的关系
类是用于描述某一类事物的信息
对象是这个类中某一个具体的个体
字段:就是变量在类中的名称