C#基础知识 - 数据类型-值类型
的有关信息介绍如下:C#有两种类型:值类型和引用类型。
值类型的变量直接包含数据,
引用类型的变量则存储对数据(称为“对象”)的引用。
值类型的每个变量都有独立的存储空间;
因此,对一个变量执行的运算不会影响另一个变量( ref 和out 参数变量除外)
C#值类型又细分为简单类型、枚举类型、结构类型和可以为 null 的值类型
简单类型:
有符号的整型: sbyte 、 short 、 int 、 long无符号的整型: byte 、 ushort 、 uint 、 ulongUnicode 字符: charIEEE 二进制浮点: float 、 double高精度十进制浮点数: decimal布尔: bool
简单类型中各个类型的可变化范围。
枚举类型:格式为 enum E {...} 的用户定义类型
每个 enum 类型都有一个基础类型(必须是八种整型类型之一)
枚举列表中的每个符号代表一个整数值,一个比它前面的符号大的整数值。默认情况下,第一个枚举符号的值是 0。第 n 个符号值与第 n-1 个有关。
结构类型:格式为 struct S {...} 的用户定义类型
1、struct关键字用于创建结构体,结构体是值类型数据结构
2、使单一变量可以存储各种数据类型的相关数据
注意:
1、包含数据成员和函数成员的结构,与类类型相似
2、与类不同的是,结构是值类型通常不需要进行堆分配
3、不支持用户指定的继承,并且所有结构类型均隐式继承自类型 object
4、结构体中声明的字段无法赋予初值,类可以
5、通过struct构造函数创建实例,实际上是给struct的所有字段赋上了初值0。
ref关键字:用于将方法内的变量改变后带出方法外,例子如图。
注意事项:
方法的参数使用ref修饰时,调用该方法时也要加上ref关键字
out关键字:返回值多个,不限类型。
注意事项:
1、调用方法之前,需对out参数传递的变量声明。
2、使用out参数传递变量时,必须在方法内为其赋值,否则return的返回值没有意义。
3、方法的参数使用out修饰时,调用该方法时也要加上out关键字