相关疑难解决方法(0)

在C#中创建对象的副本

可能重复:
如何在.Net(特别是C#)中深层复制对象?

请看下面的代码(摘自C#书):

public class MyClass 
{
    public int val;
}
public struct myStruct 
{
    public int val;
}
public class Program 
{
    private static void Main(string[] args) 
    {
        MyClass objectA = new MyClass();
        MyClass objectB = objectA;

        objectA.val = 10;
        objectB.val = 20;

        myStruct structA = new myStruct();
        myStruct structB = structA;

        structA.val = 30;
        structB.val = 40;

        Console.WriteLine("objectA.val = {0}", objectA.val);
        Console.WriteLine("objectB.val = {0}", objectB.val);
        Console.WriteLine("structA.val = {0}", structA.val);
        Console.WriteLine("structB.val = {0}", structB.val);

        Console.ReadKey();
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道它会产生下面的输出

objectA.val …
Run Code Online (Sandbox Code Playgroud)

c# reference object cloning

150
推荐指数
4
解决办法
55万
查看次数

我为什么要在c#中实现ICloneable?

你能解释一下为什么我应该继承ICloneable并实现这个Clone()方法吗?

如果我想做一个深层复制,我不能只实现我的方法吗?我们说吧MyClone()

我为什么要继承ICloneable?有什么好处?这只是让代码"更具可读性"的问题吗?

.net c# icloneable cloneable

109
推荐指数
4
解决办法
5万
查看次数

复制构造函数与克隆()

在C#中,向类添加(深层)复制功能的首选方法是什么?是应该实现复制构造函数,还是从派生ICloneable并实现该Clone()方法?

备注:我在括号内写了"深刻",因为我认为这是无关紧要的.显然其他人不同意,所以我问复制构造函数/操作符/函数是否需要明确它实现的副本变体.

c#

107
推荐指数
6
解决办法
7万
查看次数

标签 统计

c# ×3

.net ×1

cloneable ×1

cloning ×1

icloneable ×1

object ×1

reference ×1