У меня был следующий сценарий, в котором мне на ум пришло простое исправление, которое предотвратило бы простую ошибку.
Был представлен следующий код:
var dialogAnswer = new SomeActionSheet("Option 1 as string", "Option 2 as string", "Option 3 as string");
switch(dialogAnswer)
{
case "Option 1 as string":
DoSomething();
break;
case "Option 2 as string":
DoSomething();
break;
}
Позже одна строка варианта ответа былаизменился в диалоге, но был забыт в переключателе / случае, что привело к тому, что ничего не произошло, поскольку отсутствовал также случай «по умолчанию».
Мне пришло в голову, что это можно было бы легко предотвратить, если бы яиспользовал переменную вместо строки.И так как switch / case допускает только константы, мне пришлось бы использовать что-то вроде:
private const string answerOption1 = "Option 1 as string";
Но если я смотрю в более крупные проекты, я никогда / редко видел случай переключения, где использовались постоянные строковые переменные.
Итак, мой вопрос: это плохая практика или просто не распространена, и я должен использовать нормальные строки вместо константных переменных в switch / case?Или было бы еще лучше использовать enum в случаях, подобных моему?