Есть ли способ сделать это без использования класса Type
? Я предпочел бы использовать дженерики.Дженерики в обратном порядке?
abstract class MyAbstract
{
protected abstract T GetSpecialType();
private void MyPrivateFunction()
{
someT = GetSpecialType();
}
private void DoSomething<T>()
{
}
}
class MyConcrete : MyAbstract
{
protected override T GetSpecialType()
{
return SomeReallySpecialClass();
}
}
Уверен, что это сработает (его путь у меня есть сейчас), но его уродливый.
abstract class MyAbstract
{
protected abstract Type GetSpecialType();
private void MyPrivateFunction()
{
Type someT = GetSpecialType();
}
private void DoSomething(Type ofT)
{
}
}
class MyConcrete : MyAbstract
{
protected override Type GetSpecialType()
{
return typeof(SomeReallySpecialClas();
}
}
или
Должен ли я поставить его в качестве общего параметра на абстрактном классе?
Я думаю, что это лучший способ. –