参考类型

Ale*_*dre 6 .net

 var a = MyClassInstance;
    MyClassInstance = null;
    //if (a !=null){ //why }
Run Code Online (Sandbox Code Playgroud)

我认为a指向MyClassInstanceMyClassInstance等于null,那么也a必须等于null.但a不是空的,我不明白为什么.

Dan*_*rth 5

a并且MyClassInstance是对象的引用.
更改一个引用不会更改另一个引用.

var a = MyClassInstance; // Both references point to the same object
MyClassInstance = null;  // MyClassInstance now points to null, a is not affected
Run Code Online (Sandbox Code Playgroud)


Bri*_*sen 4

该变量a是一个引用,因此它保存的值是某个对象的“位置”。MyClassInstance也是一个参考。通过设置a = MyClassInstance它们都指向同一个实例。设置MyClassInstance为 null 仅影响该引用。它不会影响对象本身,也不会影响任何其他引用。