gpt4 book ai didi

c# - 克隆方法与直接将实例分配给另一个方法有什么区别

转载 作者:行者123 更新时间:2023-11-30 15:41:18 25 4
gpt4 key购买 nike

我想知道,如果我有一个名为Test的类,下面有什么区别

Test test = new Test();
Test newTest = test;
Test newTest2 = test.Clone();

newTest 和 newTest2 有什么区别?任何人都可以帮忙吗?提前致谢!

最佳答案

当你分配实例时,如果 Test 是一个类,你实际上是在复制引用,但是 testnewTest 都会指向内存中的同一个实例。

这意味着两个变量指向同一个对象:

Test test = new Test();
test.Foo = 24;
Test newTest = test;
newTest.Foo = 42;
Console.WriteLine(test.Foo); // Prints 42!
另一方面,

Clone() 通常用于指示对象本身的副本,这意味着 testnewTest2 将指向不同的对象,因此不会发生上述情况。

请注意,如果 test 是 struct(值类型),则直接赋值实际上是按值对对象进行的完整(浅)复制。

关于c# - 克隆方法与直接将实例分配给另一个方法有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8514651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com