值类型
-
直接存储数据
-
基础数据类型都是值类型
-
从类 System.ValueType 中派生的
-
容易误会的数据类型
enum struct
datetime 值类型(struct)
Nullable 值类型(本质是一个结构)
引用类型
-
不包含存储在变量中的实际数据,但它们包含对变量的引用
-
object、dynamic 和 string
指针类型
-
装箱:值类型转成引用类型
-
拆箱:引用类型转成值类型
值类型和引用类型的参数传递
-
值传递
值类型:复制值传递,函数中修改不会影响原来的变量值
引用类型:引用地址传递,函数中做修改会影响原来的变量
string:引用类型,但当做值类型处理
-
引用传递
值类型:值类型的存储地址传递,函数中修改会影响原来的变量
引用类型:引用地址传递,一样会修改
-
引用传递方式
ref:地址传递,必须先初始化,不能NULL
out:结果传出,在结果返回前必须先赋值
类型转化比较 is as typeof
is:判断类型,不会跑出异常,如果对象为null,则返回值永远为false
as:类型转化,不会抛出异常,转化失败返回null
typeof:返回System.Type对象,获取对象的具体类型信息