Здравствуйте.
Все классы должны иметь базовый класс MyBaseClass, чтобы они имели поле BaseObject типа Т и хранили там значения своих полей.
Но при наследовании, как в случае с FakeClass2, он наследуется от FakeClass1, а
BaseObject у него должен быть типа RealClassForFakeClass2.
Возможно ли такое реализовать?
На сколько я понимаю, возможно унаследоваться от FakeClass1, а BaseObject перекрыть в самом классе, но хотелось бы, чтобы можно было как-то без перекрытия в самом классе реализовать такой подход или через MyBaseClass или ещё как-то.
public class MyBaseClass<T>
where T : class, new()
{
protected T BaseObject = default(T);
public T getBaseObject()
{
return this.BaseObject;
}
}
public class FakeClass1 : MyBaseClass<RealClassForFakeClass1>
{
public string Field1
{
set
{
this.BaseObject.Field1 = value;
}
}
public string Field2
{
set
{
this.BaseObject.Field2 = value;
}
}
}
public class FakeClass2 : FakeClass1, MyBaseClass<RealClassForFakeClass2> ////error
{
public FakeClassN Field1
{
set
{
this.BaseObject.Field1 = value.getBaseObject();
}
}
}