Перечисления и Константы. Чтобы использовать когда?

Вы можете использовать это регулярное выражение для разделения на группу захвата:

/( (?:and|or) )/i

Код:

const str = `"q1" = "1" And "q2" = "2" oR "q3" = "3"`;
var arr = str.split(/( (?:and|or) )/i);

console.log(arr);

91
задан Alexei Levenkov 8 August 2015 в 21:05
поделиться

5 ответов

Используйте перечисления, когда Вы хотите определить диапазон значений, которыми что-то может быть. Цвет является очевидным примером как:

public enum Colour
{
    White,
    Red,
    Blue
}

Или возможно ряд возможных вещей как: (Пример, который я украл от здесь , поскольку я ленив)

[FlagsAttribute]
enum DistributedChannel
{
  None = 0,
  Transacted = 1,
  Queued = 2,
  Encrypted = 4,
  Persisted = 16,
  FaultTolerant = Transacted | Queued | Persisted
}

Константы должны быть для единственного значения, как PI. Нет диапазона значений PI, существует только PI.

87
ответ дан Andrew Barrett 24 November 2019 в 06:48
поделиться

То, что отсутствует в других ответах, - то, что перечисления имеют целочисленный базовый тип. Можно изменить значение по умолчанию от интервала до любого другого целочисленного типа кроме символа как:

enum LongEnum : long {
    foo,
    bar,
}

можно бросить явно от и неявно к базовый тип, который полезен в операторах переключения. Остерегайтесь тот может бросить любое значение базового типа к перечислению, даже если перечисление не имеет никакого участника с соответствующим значением. Так использование всегда раздела по умолчанию в переключателе является хорошей идеей. BTW, сама.NET позволяет даже оцененные перечисления плавающей точки, но Вы не можете определить их в C#, хотя я думаю, что можно все еще использовать их (кроме переключателя).

, Кроме того, использование перечислений дает Вам больше безопасности типов. Если Вы намереваетесь использовать, например, международные константы в качестве параметров метода, то я мог назвать метод с любым международным значением. Предоставленный, через кастинг это может произойти с перечислениями также, но этого не произойдет случайно. Хуже возможность перепутать порядок параметров.

void method(int a, int b) {...}

, Если постоянный единственное может войти в a и постоянный B только, может войти в b, то использование двух различных перечислимых типов раскроет любое неправильное употребление во время компиляции.

28
ответ дан Johannes 24 November 2019 в 06:48
поделиться

Константа является функцией языка, которая говорит, что переменная не изменит значение (таким образом, компилятор сможет сделать оптимизации вокруг того знания), где перечисление является определенным типом.

Константы могут быть любым типом данных, но перечисление является перечислением.

я использую перечисление любое место, где Вы могли иметь много опций и хотеть улучшить удобочитаемость кода. т.е. у Вас могли быть уровни трассировки как интервал со значениями 0, 1, 2 или как перечисление как ошибка, предупреждение и информация

, Перечисление также имеет способность, которая будет использоваться в качестве побитовых операторов, т.е. FontStyle. Полужирный | FontStyle. Курсив дал бы Вам полужирные и курсивные шрифты.

20
ответ дан Robert MacLean 24 November 2019 в 06:48
поделиться

В дополнение к ответу Robert:

  1. перечисление Использования для конечного множества именованных значений. Вы действительно не заботитесь о численном значении позади каждого символа (но у Вас все еще есть способность наложить их, например, для совместимости с унаследованной системой).

  2. Robert: Да, Перечисление может использоваться в качестве битовых полей. Используйте Флаги атрибут (и удостоверьтесь, что у членов перечисления есть подходящие численные значения).

8
ответ дан Serge Wautier 24 November 2019 в 06:48
поделиться

Константа C# подобна переменной, в которой она дает определенное имя к значению. Однако константа отличается от стандартной переменной, потому что когда-то определенный, значение, присвоенное константе, никогда не может изменяться. Главное преимущество констант является их помощью в создании кода самодокументирования, а также разрешении объявления значений ключа в единственном месте, которое разрешает, чтобы легкое обслуживание было должно, значение должно быть обновлено, и программное обеспечение перекомпилировано.

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

3
ответ дан simplyharsh 24 November 2019 в 06:48
поделиться
Другие вопросы по тегам:

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