这种问题是不是有办法解决

wbcnxa 2003-08-22 04:48:57
有个类OneClass,他有个方法Copy(OneClass obj),现有有个类OneClass,他有个方法Copy,现有A的实例的实例 A, B,

可否通过方法Copy,将A, B复制成相同的对象(不是指向同一个对象,而是两个对象完全相同)。

不要告诉我逐个复制字段和属性,比如:
A.Field1 = b.Field1,
A.Field2 = B.Field2
或者A = B之类
...全文
24 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wbcnxa 2003-08-24
  • 打赏
  • 举报
回复
Clone是从外部复制一个对象。我想从一个对象内部将通过类似复制的办法转自己复制成与传递给自己的另一个同类型对象一样。

比如:
public class Test
{
public string field1;
private string field2;

public void Copy(Test obj)
{
// 不是field1 = obj.field1;
复制(obj)
}
}

public class Run
{
public static void Main()
{

Test a, b;
a.field1 = "OK";
b.Copy(a);
}
}

看起来这样做似乎很蹩脚,没必要,但是我很想知道有没有方法可以如此实现。
Brunhild 2003-08-23
  • 打赏
  • 举报
回复
通过序列化和反序列化应该比较方便:

classa b, a=new classa();

System.IO.MemoryStream ms=new System.IO.MemoryStream();
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter=new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();

formatter.Serialize(ms, a);
byte[] buffer=ms.GetBuffer();
ms.Close();

ms=new System.IO.MemoryStream(buffer);
b=(classa)formatter.Deserialize(ms);
ms.Close();

MessageBox.Show(a.Equals(b).ToString());
gweidian 2003-08-22
  • 打赏
  • 举报
回复
UP

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧