我目前有以下,我认为这是非常繁琐。我通常在表单上创建不同的按钮,并通过传递一组按钮来完成它。每个按钮都有一组属性来即时设置按钮。多维枚举Array列表
public enum BtnType { bOK , bCancel, bYes, bNo };
public enum bOk { Name = "OKBtn", Text = "OK" }
public enum bCancel { Name = "CancelBtn", Text = "Cancel" }
public enum bYes { Name = "YesBtn", Text = "Cancel" }
public static void SetButtons(BtnType[] _btnType, string onClick)
{
foreach (int i in _btnType)
{
switch (_btnType[i])
{
case BtnType.bOK:
{
btnp.Name = bOk.Name;
btnp.Text = bOk.Text;
}
break;
case BtnType.bCancel:
{
btnp.Name = bCancel.Name;
btnp.Text = bCancel.Text;
}
break;
case BtnType.bYes:
{
btnp.Name = bYes.Name;
btnp.Text = bYes.Text;
}
break;
}
}
然后我这样称呼它,它会为我创建2个按钮。
SetButtons(new BtnType[] { BtnType.bYes, BtnType.bNo });
我想完成的是以下,我找不到解决方案。
public enum BtnType { bOK = { Name = "OKBtn", Text = "OK" },
bCancel = {},
bYes = {},
bNo = {} };
public static void SetButtons(BtnType[] _btnType, string onClick)
{
foreach (int i in _btnType)
{
btnp.Name = _btnType[i].Name;
btnp.Text = _btnType[i].Text;
}
}
谢谢。
这看起来不像c#。它甚至编译? –
您不能将值指定给C#中的枚举个案。你需要使用类而不是枚举。此外,你的循环迭代抛出值是完全错误的。用'foreach'你不会得到索引,而是一个'BtnType'对象。 –
字典可能是不错的。 –