Почему я не могу вернуть T в методе Generic? ⇐ C#
-
Гость
Почему я не могу вернуть T в методе Generic?
Следующий код говорит, что я не могу вернуть объект типа Сертификация? Почему бы и нет, поскольку это определение Т?
public T BuildList(список T, модель AttributeModel), где T: сертификация { вернуть новую сертификацию("", "", ""); } Обновление:
Меня попросили объяснить, почему я считаю, что это должно сработать. Справедливый вопрос.
Я прочитал «где T : Сертификация», что означает, что метод также можно прочитать как:
public Certification BuildList (список сертификатов, модель AttributeModel) Итак, должно потребоваться возврат объекта типа Certification. Я, очевидно, не понимаю здесь чего-то базового в дженериках. В чем я не прав?
Обновление 2:
Я попробовал следующее для @DStanley — это тоже не скомпилируется:
публичный класс Animal { public T BuildList(список T, модель AttributeModel), где T: Animal { вернуть новое животное(); } }
Следующий код говорит, что я не могу вернуть объект типа Сертификация? Почему бы и нет, поскольку это определение Т?
public T BuildList(список T, модель AttributeModel), где T: сертификация { вернуть новую сертификацию("", "", ""); } Обновление:
Меня попросили объяснить, почему я считаю, что это должно сработать. Справедливый вопрос.
Я прочитал «где T : Сертификация», что означает, что метод также можно прочитать как:
public Certification BuildList (список сертификатов, модель AttributeModel) Итак, должно потребоваться возврат объекта типа Certification. Я, очевидно, не понимаю здесь чего-то базового в дженериках. В чем я не прав?
Обновление 2:
Я попробовал следующее для @DStanley — это тоже не скомпилируется:
публичный класс Animal { public T BuildList(список T, модель AttributeModel), где T: Animal { вернуть новое животное(); } }
Мобильная версия