#c# #.net
#c# #.net
Вопрос:
Мне нужно иметь оператор switch, который будет переключаться по списку заголовков. Было бы лучше иметь строку [], перечисление, список и т. Д.? Список будет постоянным, а значения не изменятся.
И как бы я реализовал перечисление, которое переключается между строковыми значениями?
Комментарии:
1. из этих вариантов будет работать только перечисление. Вы не можете включить строковое значение.
2. @Erix Вы можете, если это постоянное время компиляции. Конечно, это и есть
string
, и нетstring[]
.
Ответ №1:
string[]
не будет работать, потому что вы не можетеswitch
использовать его, и каждый случай должен быть элементом с индексом n.List<string>
не будет работать по тем же причинамenum
я слышал, что это довольно стандартная практика.
Для примера того, о чем я говорю в первых двух примерах:
switch(l)
{
case l[0] == "boo":
break;
}
Выдает ошибку компилятора:
A switch expression or case label must be a bool, char, string, integral, enum, or corresponding nullable type
И с радостью, поскольку я не могу себе представить, почему кто-то будет реализовывать это таким образом.
Ответ №2:
Зависит. Если заголовки представляют собой просто строки, которые не являются динамическими, тогда используйте enum . Если заголовки будут иметь другие свойства, используйте массив объектов title. Если количество заголовков может измениться, вам, вероятно, нужен какой-то тип списка. Если количество заголовков останется прежним, но заголовки могут измениться, я бы просто использовал string[] . Но большую часть времени я видел инструкции switch, которые они используют с перечислениями…