我有一个方法GenerateOutput
,它打印一个字符串列表。该方法将多个枚举作为参数,并根据输入到方法中的标志输出结果。我知道枚举是为编译时设计的,但是可以根据用户在程序中选择的选项在运行时更改输出吗?
基本上,我有各种复选框,代表可能的枚举。当用户选择一个选项时,该标志应作为参数添加到GenerateOutput
方法中。可以这样做吗?感谢
答案 0 :(得分:3)
我认为您想要做的事情(我不确定我完全理解您的问题)是在运行时建立一个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);
或者,正如Francisco在评论中所建议的那样,有一个List列表(如果你只希望每个枚举值出现一次,则为HashSet):
// In checkbox handlers, e.g.
list.Add(TestEnumerations.Value1);
// Where you call the method
GenerateOutput(list);