Перечислимое подмножество или подгруппа в C#

Можно также аннулировать высоту строки родителя:

#wrapper {
  line-height: 0;
}

Все исправления: http://jsfiddle.net/FaPFv/

21
задан srmark 5 February 2009 в 23:19
поделиться

4 ответа

В конце я должен был переписать большую часть кода, но следующий "прием" был получен:

я повредил перечисления C#, и используйте статических участников на регулярном классе. Этот класс был превращен в одиночный элемент и является inited на приложении, запускаются.

конструкторам Моих статических участников разрешают сослаться на другого статического участника как на "родителя".

Затем, мой init метод использует отражение для прохождения через каждого статического участника и индексирует их на основе нескольких свойств. Эти индексы хранятся в хеш-таблицах, которые являются также членами одиночного элемента.

я таким образом добираюсь:

одноэлементный объект, который:

  • имеет статических участников, к которым можно легко получить доступ в течение времени проектирования.
  • может привыкнуть во время времени выполнения к поиску определенные статические участники (на основе "группы" и других свойств).

Мой init метод делает изрядное количество проверки. Если недопустимый (такие как дубликат) статические участники создаются, Вы получаете ошибку времени выполнения на запуске приложения.

, Очевидно, довольно большой взлом, но я довольно доволен им.

2
ответ дан 29 November 2019 в 21:12
поделиться

Вы могли определить значения с помощью перечисления, но затем сослаться на них через константы в статических классах так, чтобы разработчики не становились сверхстолкнутыми большим перечислением. Вы могли иметь:

enum MySuperEnumGroup
{
  Group1Item1,
  Group1Item2,
  Group1Item3,

  Group2Item1,
  Group2Item2,
  Group2Item3,

  Group3Item1,
  Group3Item2,
  Group3Item3,
}

static class MySuperEnumGroup_Group1
{
  public const MySuperEnumGroup Item1 = MySuperEnumGroup.Group1Item1;
  public const MySuperEnumGroup Item2 = MySuperEnumGroup.Group1Item2;
  public const MySuperEnumGroup Item3 = MySuperEnumGroup.Group1Item3;
}

static class MySuperEnumGroup_Group2
{
  public const MySuperEnumGroup Item1 = MySuperEnumGroup.Group2Item1;
  public const MySuperEnumGroup Item2 = MySuperEnumGroup.Group2Item2;
  public const MySuperEnumGroup Item3 = MySuperEnumGroup.Group2Item3;
}

//etc.
10
ответ дан 29 November 2019 в 21:12
поделиться

Это могло бы помочь: Поддельные Перечисления в C#

3
ответ дан 29 November 2019 в 21:12
поделиться

Я бы пошел с этим (который работает, по крайней мере, в VB.NET)

enum MySuperEnumGroup 
{ 
  Group1Item1, 
  Group1Item2, 
  Group1Item3, 

  Group2Item1, 
  Group2Item2, 
  Group2Item3, 

  Group3Item1, 
  Group3Item2, 
  Group3Item3, 
} 

enum MySubEnumGroup 
{
Group2Item1 = MySuperEnumGroup.Group2Item1 
Group3Item1 = MySuperEnumGroup.Group3Item1 
Group3Item3 = MySuperEnumGroup.Group3Item3
}

Затем сделайте какой-нибудь CType, когда вам нужно.

13
ответ дан 29 November 2019 в 21:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: