public T DeepCopy<T>(T arg) { BinaryFormatter formatter = new BinaryFormatter(); MemoryStream stream = new MemoryStream(); formatter.Serialize(stream, arg); stream.Position = 0; T result = (T)formatter.Deserialize(stream); stream.Close(); return result; }
[其他解释] 序列化拷贝,再反序列化。不过效率比较低。
http://blog.csdn.net/fangxinggood/article/details/369410 [其他解释] 写程序首先考虑的是程序的正确性而不是怎么方便,看如下代码: class A { public B Obj { get; set; } } class B { public string Text { get; set; } }
A a1, a2; a1 = new A() { Obj = new B() { Text = "a1" }}; 如果A不是你设计的,请问你打算怎么复制a2?不要问我,我也不知道。 [其他解释]
我了个去,这都可以,学习了,哈哈,序列化的巧妙运用啊 [其他解释]
写个方法,将值移动到新对象上去。 [其他解释] 哈哈,1楼跟我想的一样 [其他解释]
其实我的问题没那么复杂,就是比如: A a1; a1(就是A)的属性有 int number1,number2,number3, string str1,str2,str3, 自定义的类型Student s1,s2,s3;