У меня есть такой класс:
public MyClass
{
public myEnumType Status {get;set;}
public DataTable Result{get;set;}
}
Поскольку DataTables отстой, я хочу реализовать объектно-ориентированный подход. Однако у меня есть существующий код, такой как:
public interface IData
{
MyClass AddData(int i);
MyClass GetData(string Tablename);
}
Я хотел бы использовать этот интерфейс, но вместо того, чтобы возвращать DataTable, я хочу вернуть какой-то объект, например класс / Person.
Я действительно думал о создании нового класса, который унаследовал MyClass следующим образом:
public MyInheritedClass<T> : MyClass
{
public new T Result{get;set;}
}
Однако всякий раз, когда вы получаете данные из класса, который реализует интерфейс, вам придется приводить результат методов из MyClass в MyInheritedClass. Поэтому мне было интересно, есть ли способ использовать существующий MyClass, чтобы поместить конструктор, который передает универсальный тип, так что в итоге я получил что-то вроде
public MyClass
{
public MyClass(T MyObjectOrientatedClass)
{
MyOOClass = MyObjectOrientatedClass;
}
public myEnumType Status {get;set;}
public DataTable Result{get;set;}
public T MyOOClass {get;set;}
}