У меня есть метод, который хотел бы взять в качестве параметра массив пользовательских Enum
типов.Что такое «общий» тип для массива enum?
Что-то, что будет выглядеть как этот:
public void DoSomething(WhatDoIPutHere[] parameters)
Я хотел бы перейти к этому методу либо Enum1[]
или Enum2[]
где Enum1
и типа.
Что необходимо для использования вместо WhatDoIPutHere
?
я ожидал бы определить подпись DoSomething, как Enum[]
, как-то Enum
является базовым классом для типов Enum (справа):
public void DoSomething(Enum[] parameters)
но это дает:
не может конвертировать из 'xxx.Enum1 []' в 'System.Enum []'
Я также пробовал определить его как object[]
, но я получаю такую же ошибку компилятора ..
Я знаю, что это совершенно вонючий код, и если бы я мог, я бы определенно избавиться от него ...
Вау, спасибо, это был быстрый и тщательный ответ! Я поеду для первого варианта, тогда ... Я не могу сильно изменить подпись метода слишком много (например, добавить общий тип), поэтому вариант 2 отсутствует ... и вариант 3. Мне, вероятно, нужно будет изучить это, но в другой раз :) – tsimbalar