C#中所说的引用就是地址? 那引用类型传的是一个地址,是不是改变了地址就改变了变量引用的对象?
本质上是地址,传得也是地址的拷贝,可以这样认为:C#中的引用类型是对C里面的指针和对象的封装string a=“123”; 改变变量a的地址时就是对123的改变? 
string类型是值类型。还有就是说引用类型存什么在堆什么栈上,拿a变量来说,是什么在堆什么在栈上? 
引用是存放在栈上的,引用类型的对象存放在堆上的,不能直接访问,需要在栈中分配一个栈中对象(C里面是指针,C#里是引用)指向其堆中对象。值类型直接存的就是值,也就是说如果 int a=5; 那么a和5就存在同一个地方?
值类型存的是对象的拷贝,存放在栈中,直接访问。

解决方案 »

  1.   

    引用就是地址.引用类型存储在堆上,值类型是栈上.
    2L的,string是引用类型,string a=“123”;a指向"123"的首地址.值类型直接存的就是值,也就是说如果 int a=5; 那么a和5就存在同一个地方? 
    值类型存的是对象的拷贝,存放在栈中,直接访问。
      

  2.   


    值类型存对象的拷贝,以int a=5;为例,那就是说在内存中相当于有两个5? 一个是5本身,一个是5的拷贝?
      

  3.   

    学习了,string表现虽是值类型特性,但是其应用的flyweight模式,其实a中保存的是"123"的指针。string是.net类型中一个特殊的类型。
      

  4.   


    string类型是引用类型,尽管表现的像是值类型