Возврат «это» в методе с универсальным типом возвратаC#

Место общения программистов C#
Ответить
Anonymous
 Возврат «это» в методе с универсальным типом возврата

Сообщение Anonymous »

Я пишу универсальные методы и не понимаю, почему следующий фрагмент кода выдает синтаксическую ошибку:

Код: Выделить всё

    public abstract class Parent
{
public virtual T MyMethod() where T : Parent, new()
{
return this;
}
}
Этот метод ограничен возвратом типов, которые являются либо родительскими, либо типами, производными от родительского. Поскольку этот класс является абстрактным, возвращая this, метод, очевидно, вернет некоторый класс, наследуемый от Parent, однако появляется синтаксическое предупреждение: «Невозможно неявно преобразовать тип «Parent» в «T». '. Существует явное преобразование (вам не хватает приведения?)"
Может кто-нибудь объяснить, почему это так и как это можно исправить?

Подробнее здесь: https://stackoverflow.com/questions/786 ... eturn-type
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»