假设您有以下两个类:
public class ClassA {
public int X { get; set; }
public int Y { get; set; }
public int Other { get; set; }
}
public class ClassB {
public int X { get; set; }
public int Y { get; set; }
public int Nope { get; set; }
}
现在假设您有每个类的一个实例,并且您想将a中的值复制到b中。是否有像MemberwiseClone这样的东西,可以在属性名称匹配的情况下复制值(当然是容错的 - 一个具有get,另一个具有set等)?
var a = new ClassA(); var b = new classB();
a.CopyTo(b); // ??
像 JavaScript 这样的语言很容易实现这个功能。
我猜答案是否定的,但也许还有一个简单的替代方法。我已经编写了一个反射库来实现这个功能,但如果在 C#/.NET 的更低层级内置该功能可能会更有效率(何必重复造轮子呢)。