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”在堆里

posted @ 2022-04-05 15:57  暗,伏!  阅读(411)  评论(0编辑  收藏  举报