Как представить Перечисление в Интерфейсе, когда Вы не можете

Хорошо, таким образом, основание этого сообщения и объяснить заголовок просто. У меня есть Интерфейс с методом. Тот метод на стороне пользователя возьмет в перечислении как параметрический усилитель. Но Вы не можете определить перечисления в интерфейсе поэтому, я не вижу, как я могу даже определить этот метод затем, если я ожидаю Перечисление типа как один из входящих параметрических усилителей.

Таким образом, как Вы обрабатываете эту ситуацию? Как можно все еще получить тот метод в Интерфейсе. Вы не знаете, какого Перечисления они потребуют, чтобы быть представленными, но Вы знаете наверняка, что Вы хотите, чтобы оно было перечислением вместо волшебных строк.

Перечисление не является ссылочным типом, таким образом, Вы не можете использовать Object как тип для входящего параметрического усилителя. Так не уверенный, что сделать здесь.

30
задан Jim Fell 17 October 2018 в 20:29
поделиться

3 ответа

interface MyInterface
{
    void MyMethod(Enum @enum);
}
19
ответ дан 27 November 2019 в 23:54
поделиться
public enum MyEnum
{
  Hurr,
  Durr
}

public interface MyInterface
{
  void MyMethod(MyEnum value);
}

Если вы говорите не об этом, оставьте комментарий, чтобы люди могли понять, в чем ваша проблема. Потому что, хотя перечисление не определено в интерфейсе, это совершенно нормальный и приемлемый дизайн.

31
ответ дан 27 November 2019 в 23:54
поделиться

Если вы говорите о родовых интерфейсах и о том, что C# не позволяет вам ограничивать родовые типы перечислениями, то ответы на этот вопрос включают два различных обходных пути.

0
ответ дан 27 November 2019 в 23:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: