下面是我的配偶副本到客户端(两者都是相同的对象类型).然后将配偶设为null.
client = spouse; // Copying data
spouse = null;
Run Code Online (Sandbox Code Playgroud)
然后我暂停(在另一条线上使用断点)并检查客户端和配偶的内存.配偶是空的,但客户不是.
客户端不应该为null,因为它的内存是浅拷贝的结果吗?
干杯
Eri*_*ert 13
你的配偶住在芝麻街123号.
你在一张纸上写下:SPOUSE:123 Sesame Street.
现在你写下另一张纸:客户:然后你在第一张纸上复制SPOUSE后所说的内容.
现在你有两张纸.一个人说"SPOUSE:123芝麻街".另一个说"客户:123芝麻街".
现在,您删除显示SPOUSE的页面上的地址.
CLIENT现在说的页面是什么?
你选择的行话表明你的困惑.
不要说"做一个浅的副本".说"复制参考",因为这就是你正在做的事情."浅"相对于什么而言是相对的.说出真正发生的事情:正在复制值,值是参考.
不要说"此对象为空".这就像是说"车道上的车不在那里"; 这是荒谬的.甲变量可包含空引用.甲参考可以是一个空引用 ; 它是指没有对象的引用.但它不是一个对象; 这是一个对象的缺席.
当你使你的语言精确时,这些混乱开始迅速消失.