c# преобразование object в указанный тип
Предположим есть 2 класса MyClass1 и MyClass2, которые в целом различны, но содержат одинаковые поля (например field1 и field2).
Хочу такую функцию которая принимала бы в себя:
object, который на самом деле является MyClass1 или MyClass2
и string, в котором бы было наименование типа (MyClass1 или MyClass2).
Внутри: полученный object интерпретируется нужным образом и происходят необходимые преобразования над общими по названию полями (field1 и field2) и возвращается обратно преобразованный object. Дублировать код для обоих возможных вариантов не хотел поэтому спрашиваю..
что то типа:
public object MyFunc(object obj, string typeName)
{
Type realType;
if (typeName == "MyClass1")
{
realType = typeof(MyClass1);
}
else if (typeName == "MyClass2")
{
realType = typeof(MyClass2);
}
(realType)obj.field1 = 123;
(realType)obj.field2 = 456;
return obj;
}
но так конечно не работает. Как быть? Может какой то другой подход использовать? полей для редактирования может быть 20+потребность в том чтобы блок кода с назначением полей был универсален для обоих классов
Ответы (1 шт):
Решил через наследование от родительского класса, а в функции перед изменением завожу экземпляр родительского класса, запихиваю в него приведенный объект и в нем меняю нужные поля