我有一个小问题。这是我的问题的简化版本。
我有一个类,它有一个按钮列表及其名称(新建、编辑、删除)以及一个“类型”类型的对象
class test
{
private List<Button> buttons; //
private Type type;
public test(Type t)
{
this.type = t;
/* some code to create the buttons from the enum.
got this already covered but "Restore" does not get created by intention*/
}
public void setButtons(int i)
{
}
}
类型是带有 flags 属性的枚举
[Flags] enum EnumTest{None=0, New=1, Edit=2, Delete=4, Restore=8}
我想做的是让“setButtons”方法创建一个“type”实例,将“int i”的值设置为标志值,浏览按钮列表并设置“Enabled”属性按钮取决于是否引发了标志,其中按钮“名称”属性取决于枚举中的标志名称(EnumTest 或任何其他)
我尝试了几种类似的东西
var enu = Enum.ToObject(type, i);
但我无法设置标志,或者我不知道如何设置。我正在考虑在创建它时使用反射。似乎“ToObject”方法不能很好地与 flags 属性配合使用。“TryParse”似乎可以,但我不知道如何让它从“Type”动态加载。
请考虑到这是我的问题的高度简化版本,但它会保留意义。