C#初学13 值类型、引用类型

值类型均隐式派生自System.ValueType
数值类型、bool、结构、枚举
引用类型派生自System.Object
字符串、数组、类、接口等
1.引用类型变量的赋值只复制对象的引用
2.值类型变量赋值会拷贝一个副本

值类型:
int、char、double、float、long、short、byte、bool、enum、struct、decimal
引用类型:
string、数组、类、接口、委托
C#初学13 值类型、引用类型
无论是值类型还是引用类型,都是栈中内容的复制。引用类型在栈中存储的是堆的地址,地址复制后,相当于两个变量同时指向一个堆,可以同时修改其中的内容。
值类型 如int n=100;int m=n; 就是将n栈中的100复制到m的栈中
在方法中进行参数传递时,相当于新建一个变量,同时将栈中的值或地址传递给新的变量的栈中
int n=100;
static void M1(int m)
{
m=m+1;
}
引用类型 如 Person p = new Person(); Person p1 = p; 是将p栈中的0X99复制到p1的栈中,它们同时指向一个堆。
在方法中进行参数传递时,相当于新建一个变量,同时将栈中的值或地址传递给新的变量的栈中
C#初学13 值类型、引用类型

C#初学13 值类型、引用类型