Входные перечисления во время выполнения - PullRequest
0 голосов
/ 15 декабря 2010

У меня есть метод GenerateOutput, который печатает список строк. Метод принимает несколько перечислений в качестве параметров и выводит результат, в зависимости от того, какие флаги были введены в метод. Я знаю, что перечисления предназначены для времени компиляции, но возможно ли изменить вывод во время выполнения в зависимости от того, какие параметры пользователь выбрал в программе? По сути, у меня есть различные флажки, которые представляют возможные перечисления. Когда пользователь выбирает параметр, этот флаг должен быть добавлен в качестве параметра к методу GenerateOutput. Можно ли это сделать? Спасибо

1 Ответ

3 голосов
/ 15 декабря 2010

Я думаю, что вы хотите сделать (я не уверен, что полностью понимаю ваш вопрос), чтобы создать значение Enum во время выполнения для передачи в функцию.

Предполагая, что ваше перечислениезадается атрибутом [flags]:

[flags]
public enum TestEnumerations
{
    Value1 = 1,
    Value2 = 2,
    Value3 = 4,
    //etc
}

, тогда вы можете сделать это:

// In checkbox handlers, e.g.
tEnums |= TestEnumerations.Value1;

// Where you call the method
GenerateOutput(tEnums);

В качестве альтернативы, как предложено Франциско в комментариях, иметь список List (или HashSetвы хотите, чтобы каждое значение перечисления появлялось один раз):

// In checkbox handlers, e.g.
list.Add(TestEnumerations.Value1);

// Where you call the method
GenerateOutput(list);
...