Почему универсальный тип «T» с ограничением «Enum» не распознается интерфейсом как «Enum»?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Почему универсальный тип «T» с ограничением «Enum» не распознается интерфейсом как «Enum»?

Сообщение Anonymous »

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

internal interface IStateManager
{
Enum State { get; }
}

internal abstract class StateManagerBase : IStateManager where TEnum : Enum
{
public TEnum State { get; protected set; }
}
Это выдает:

'StateManagerBase' не реализует член интерфейса 'IStateManager.State'.

"StateManagerBase.State" не может реализовать "IStateManager.State", поскольку он не имеет соответствующего возвращаемого типа "Enum".

В моем понимание того, что когда я ограничиваю «TEnum» типом «Enum», тип возвращаемого значения «TEnum» должен соответствовать «Enum». Я предполагаю, что я не знаю правила об обобщениях/ограничениях.
Может ли кто-нибудь указать мне правильное направление?
РЕДАКТИРОВАТЬ: я случайно State объявлено как обнуляемое, теперь оно исправлено, чтобы указать исходное намерение.

Подробнее здесь: https://stackoverflow.com/questions/791 ... -by-interf
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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