![]() |
1
3
第二次(递归)调用
即
结果
考虑到你在所有情况下都会两次通过同一件事,
使用泛型约束返回类型会更有意义,这样调用端就不需要强制转换。此外,还可以将克隆转换为扩展方法,以便它可以应用于任何内容。 另一方面,您尝试做的事情(自动深度克隆)不太可能普遍有用。大多数类最终都会保存对它们不拥有的对象的引用,因此,如果克隆此类对象,最终会意外地克隆应用程序框架的一半。 |
![]() |
2
1
试试这个:
|
![]() |
3
0
首先,我同意克隆方法应该是静态的,但我不认为
是个好主意。我认为更好的方法是使用Original类型并完全去掉EmptyObject参数。
你也必须
所以我的方法是
注意我用的
可以将此静态方法移动到某个静态助手类。 作为附带说明,我想说的是,如果您的命名空间中的某个类中存在一些集合类型字段(或任何标准可变复合字段),则“深度”克隆的这种实现将无法正常工作。 |
![]() |
4
0
克隆类实例的最佳方法是创建一个委托来执行该操作。实际上,Linq表达式生成的委托可以访问私有/内部/受保护和公共字段。委托只能创建一次。将它保存在泛型类的静态字段中,以利用泛型查找解析而不是字典。
|
![]() |
5
0
我尝试用这里发布的示例克隆实体框架对象,但没有任何效果。 我用不同的方法创建了一个扩展方法,现在我可以克隆ef对象:
我没有检查数组的大小写,但是您也可以为此添加一些代码(如 link ):
|
![]() |
juiceb0xk · 运行安装程序时更改程序包名称。py公司 7 年前 |
![]() |
vince · 角反应形式的深度复制? 7 年前 |
![]() |
rener172846 · 如何在Haxe中克隆动态对象? 7 年前 |
|
Hemispherr · git克隆的权限被拒绝 7 年前 |
![]() |
Jason · 克隆模板时如何更改内部div? 7 年前 |
![]() |
yuppo · git属性中忽略了负面模式 7 年前 |