最近一位朋友问我为什么C#中没有克隆功能.但我真的不明白为什么要使用克隆除了这个:
SomeClass cls = new SomeClass();
SomeClass cls2 = cls;
Run Code Online (Sandbox Code Playgroud)
你为什么要使用= cls.clone();,所以这样:
SomeClass cls = new SomeClass();
SomeClass cls2 = (SomeClass) cls.clone();
Run Code Online (Sandbox Code Playgroud)
我从来不理解这种差异.任何人都可以解释哪一个更好,有什么区别?
你在这做了什么
SomeClass cls = new SomeClass();
SomeClass cls2 = cls;
Run Code Online (Sandbox Code Playgroud)
正在为ONE,同一个对象创建两个引用.图片(可能有点难看,因为我自己画了;)):

但是在这段代码中:
SomeClass cls = new SomeClass();
SomeClass cls2 = (SomeClass) cls.clone();
Run Code Online (Sandbox Code Playgroud)
您创建了具有两个引用的TWO对象,其中第二个对象是第一个对象的副本.cls指向第一个对象,而cls2指向第二个对象.Jvm必须为两个不同的对象预留空间而不是一个.图片:

| 归档时间: |
|
| 查看次数: |
904 次 |
| 最近记录: |