Предположим, у вас есть 2 класса, например:
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, а у другого набор и т. Д.)?
var a = new ClassA(); var b = new classB();
a.CopyTo(b); // ??
Что-то вроде этого довольно легко на языке, подобном JavaScript.
Полагаю, ответ - нет, но, возможно, есть и простая альтернатива. Я написал для этого библиотеку отражений, но если ее встроить в C # / .NET на более низком уровне, вероятно, будет более эффективным (и зачем заново изобретать колесо).