Как указано в ответе pm100 и в комментариях, enum
является правильным инструментом для работы.Вышеупомянутый ответ иллюстрирует основное использование, но я хочу добавить две вещи, которые позволят вам приблизиться к возможности писать MNote S = C#;
Использовать буквы Unicode в ваших enum
Хотя это правда, что вы не можете использовать специальные символы в enum
- с подчеркиванием _
, являющимся единственным исключением, члены enum могут использовать буквы Unicode.Хотя вы не можете идеально имитировать символ #
, вы можете довольно близко подойти к алфавиту Ogham .Письмо Огама Gort , номер Unicode U + 168C, выглядит следующим образом ᚌ
.
Таким образом, вы можете написать
public enum MusicalNotes
{
C,
Cᚌ,
D,
Dᚌ,
}
Если вам не нравится писать что-то вроде var myNote = MusicalNotes.C
, вы можете добавить директиву using static
, чтобы решить эту проблему.
using static
позволяет импортировать статические элементы.Поэтому, добавив using static MusicalNotes;
к своим директивам, вы сможете написать var myNote = C;
.
Конечный результат
var myNote = Cᚌ;
- действительный код.