深入.NET平台和C#编程 第二章
深入C#数据类型
1.值类型和引用类型
1、值类型
值类型源于System.ValueType家族,每个值类型的对象都有一个独立的内存区域用于保存自己的值,值类型数据所在的内存区域为栈(Stack)。
2、引用类型
引用类型源于System.Object家族,在C#中引用类型主要包括数组、类和接口。
3、细分值类型和引用类型
值类型 基本数据类型 整型:int
长整型:long 浮点型:float双精度型:double 字符型:char
布尔型:bool 枚举类型 枚举:enum
结构类型 结构:struct
引用类型 类 基类:System.Object
字符串:string 自定义类:class 接口
接口:interface 数组 数组:int[],string[]
2.结构
1.结构的定义
访问修饰符 struct 结构名
{
//结构体
}
结构的定义特点:
结构中可以有字段,也可以有方法。
定义时,结构中的字段不能被赋值。
2.结构的使用
可以不用new,直接定义结构的对象即可。
声明结构的对象 后,必须给结构的成员赋初值。
3.结构的使用经验
结构是值类型,声明结构变量就存蓄一个结构的新副本。基系统要开辟一块新的存储空间,因此结构用的越多所消耗的存储空间也越多。
3.不同类型的参数传递
1.概述
使用值传递,在方法中对参数的更改在调用后不能保留。
使用ref方式传递时,可以保留对参数值的更改。
2.值方式参数传递
1.使用引用类型作为参数
class Voter
{
public void Vote(SE se)
{
//人气值增加1
se.Popularity++;
}
}
2.使用值类型作为参数
private void Vote(ref StructSE se)
{
//人气值增加1
se.Popularity++;
}