У меня возникли некоторые проблемы с моим домашним кодом C #.
Вопрос: я создал универсальный метод с типом возвращаемого значения T и целочисленным параметром.Метод выполняет следующие действия: - проверяет тип T. - если тип - ClassA, то он должен возвращать тип ClassA.-если типом является ClassB, то он должен возвращать тип ClassB.-если тип ClassC, то он должен возвращать тип ClassC.
Я могу проверить тип T с кодом:
Type theType = typeof(T);
Затем я проверяю:
if(theType.Equals(typeof(ClassA))
{
Return ClassA.FindByID(the given parameter);
}
Однако визуальная студия говорит мне, что «не может явно преобразовать тип« ClassA »в« T ».Я пробовал приведение типа return (ClassA)blah blah blah;
, но визуальная студия постоянно сообщает мне об этой ошибке.
Боюсь, я все делаю наоборот и думаю, что это можно было бы сделать намного проще.Итак, как я могу вернуть нужный тип?
Спасибо за вашу помощь.
PS: извините за любые ошибки.Я не являюсь носителем английского языка, и я впервые использую StackOverflow:)
Я пытался привести его в явном виде, например:
return (ClassA) ClassA.FindById(Id);
Но я получил ту же ошибкусообщение, упомянутое выше.
Вот мой полный метод.
public T GetById<T>(int Id)
{
Type elementType = typeof(T);
if(elementType.Equals(typeof(ClassA))
{
return ClassA.FindById(Id);
}
if(elementType.Equals(typeof(ClassB))
{
return ClassB.FindById(Id);
}
if(elementType.Equals(typeof(ClassC))
{
return ClassC.FindById(Id);
}
}