在C++
中,我们有Copy Constructor、Destructors、overloaded =,它们统称为复制控制。
我的问题是:
C#
中是否使用复制构造函数
作为参数
传递给函数时初始化 对象或当初始化
时(不分配)或当返回
一个对象时函数
如C++
?当我们分配(不初始化)任何对象给同类型?
最佳答案
- 否:引用对象通过引用传递,而值对象则逐字节复制。您可以创建自己的“复制构造函数”,但您需要负责显式调用它们。
- 不能重载赋值运算符
公平地说,对于 C#,由于底层垃圾收集内存模型,C++ 复制控制的任何复杂性都不是必需的。例如,在复制对象时,您不需要控制动态分配对象的所有权,因为您可以自由地拥有任意数量的动态对象引用。
关于c# - c#有没有类似c++的复制控制概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13862498/