一、值类型、引用类型和指针类型
C#有三种类型:引用类型、值类型和指针类型。
1、值类型:在栈中分配空间,由系统自动分配
如:枚举类型、j结构类型(数值类型(decimal、整数类型(sbyte、byte、char、short、short、int、uint、long、long)、浮点类型(float、double))、布尔类型、自定义结构类型)
PS:double相比,decimal 类型具有更高的精度和更小的范围
2、引用类型:在堆中分配空间,由程序员用“new”来分配空间
如:Object、string、类(class)、接口(interface)、委托(delegate)、数组
3、指针类型同C和C++一样的使用,但还有一些特殊的地方,此处不讨论。
值类型在做赋值操作的时候,值类型变量相互赋值之后,两变量做任何操作都互不受影响,因为他们储存在不同的空间。
引用类型相互赋值之后,因为他们共用一个空间,互相影响,一个值改变,另一个值也相应改变。
二、引用参数
为了让值类型的参数达到引用类型参数的效果,ref。
ref修饰的变量在传递参数前一定要有初始值。
三、输出参数
如果想要返回一个或多个的,out。
out修饰的变量在传递之前,可以没有初始值。<