У меня есть следующий, и я думаю, что это очень громоздко. Я в общем создаю разные кнопки на форме и выполняю ее, передавая массив кнопок. Каждая кнопка имеет набор свойств для установки кнопки «на лету».Многомерный список перечислений Список массивов
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#.Вам нужно использовать класс вместо enum. Кроме того, ваш цикл для итерации значений броска совершенно неверен. С 'foreach' вы не получите индекс, а объект' BtnType'. –
словарь может быть приятным. –