C#基本数据类型
1、值类型和引用类型
值类型
简单类型:int/double/float/char/bool/
枚举:enum
结构:struct
引用类型
类、数组、接口、字符串
区别:
值类型
存储在内存的栈中,从栈中可以快速访问数据,值类型存储的是实际数据
将一个值类型变量赋值给另一个值类型变量,属于值被复制
引用类型
内存中栈中只存放内存堆中数据的地址,数据本身存放堆中
如果引用类型的值为null,表示未引用任何对象,经常异常:空指针异常
将引用类型的变量赋值给另一个引用类型变量,属于地址被赋值
2、装箱和拆箱
装箱:将值类型转为引用类型
拆箱:将引用类型转为值类型
3、枚举
枚举是一种值类型,由一组字段组成,每个字段默认的数据类型是int
语法:
访问修饰符 enum 枚举名称
{
枚举成员
}
注意:
1、写在和类相同的地方(和类同一个级别)
2、枚举成员的值,如果没有为成员赋值,第一个成员的值默认0,后面的成员依次加1
3、访问修饰符和类是一样的,public和internal
4、枚举中的成员是唯一的
7、结构
结构是一种自定义的数据类型,类似于:类,有属性和方法
注意:
1、类是引用类型,结构是值类型
2、结构不支持继承
3、结构的构造方法必须带参数
语法:
访问修饰符 struct 结构名称
{
属性
方法
}
4、方法的参数
值参数(值类型),把实参传递给形参,传递的是副本,方法内部修改参数的值,实参的值不会变化
引用参数(引用类型),把实参传递给形参,传递的地址,方法内部修改参数的值,实参的值会发生变化
把值参数转为引用参数:
1、在声明方法的参数中使用ref修饰参数
2、在调用方法的实参中使用ref修饰参数
、ref表示引用类型的参数
输出参数
方法执行完成后,可以返回该参数的结果,使用out表示
数组型参数
在参数前面加入params关键字,就是一个带数组型的参数方法
如果方法有数组型参数,该种参数必须放在参数列表的最后