Почему универсальный тип «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

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