这只是一个'出于好奇'的问题,所以我不能提供一个基于当前问题的真实世界示例,但是有一些虚拟代码应该足够了。我想知道的是,如果有一种直接(并且特别快速)的方式将对象的实例映射到'this'(当前实例的类型完全相同,可以访问私有成员等)将对象实例映射到'this'?
public class MyObject {
public MyObject(MyObject other) {
// of course, won't work
this = other;
}
}
我见过的所有示例和操作方法都是过度使用反射,甚至构建完整的表达式树或使用像Automapper这样的框架,当想法看起来“相当平凡”时,它们都有自己的局限性。为什么不可能将所有指针/引用等从内存中的某个位置复制到另一个位置,因为分配的空间等是完全相同的?
您可以使用ISerializable –
克隆它因为“复制”是一个比您假设的更复杂的复杂过程。假设类有一个List类型的字段。你是否复制引用,或者你是否创建了一个新列表并将其中的元素复制到它中?如果你使用后者,你是复制项目引用还是需要复制项目对象?他们的领域应该发生什么?如果您没有足够的访问权限来做到这一点,该怎么办?试着用语言解决这个问题,你会得到一个C++ frankenlanguage。 –