c#内存分配
1、c#内存分 进程堆(进程唯一)、线程栈(每个线程一个)
2、引用类型的值在堆里,值类型的值在栈里。
比如:
int a=1; //a和1都在栈里
string b="abc"; //b在栈里,“abc”在堆里
3、对象(引用类型)里面的值类型在堆里
比如:
Class A{
public int aa{get;set;}
public string bb{get;set;}
}
A a = new A();
a.aa = 1;
a.bb = "123";
a在栈里,aa、bb在堆里,1、“123”也在堆里
4、值类型里面的引用类型在堆里
比如:
Struct S
{
int a;
string bb;
}
S s;
s.aa=1;
s.bb="123";
s在栈里,aa、bb在栈里,1在栈里,“123”在堆里