Сегодня я столкнулся с проблемой: я пытался проверить ошибки программного обеспечения, чтобы обеспечить правильное поведение программы при ее возникновении в ошибке.Могу ли я динамически проверять регистр case в C#?
Мне нужно было проверить, существует ли пользователь в базе данных.
Проблема в том, что фоновый код не предоставляет errorId, поэтому я должен проверить ошибки по тексту.
Ошибки отображаются следующим образом:
Пользователь Имя уже есть!
Заявление переключателя заключается в следующем:
switch (error.text)
{
case "User Test already exists":
Console.WriteLine("The user already Exists"); //this is a test behaviour.
break;
default:
Console.WriteLine("I couldn't behave in any way :<");
}
Как вы можете себе представить, что имена всех разные (это единственное поле в БД), так что слово «тест» в случае заявления должны быть имя пользователя.
Могу ли я динамически изменять строку?
* Пожалуйста, * форматируйте свой код как код, а не добавляйте жирным шрифтом и курсивом по всему месту (в HTML не менее). Но нет, случаи должны составлять константы времени компиляции. Похоже, вы могли бы просто использовать инструкцию 'if' очень легко, хотя ... –
Это будет очень хрупкий тест. Вы должны делать только этот тип теста, если ничего другого нет. Например, вы не могли добавить уникальный идентификатор или что-то в бэкэнд? –
Зачем делать ошибки настолько конкретными? Ваша ошибка: «Пользователь уже существует», затем для регистрации или отображения вы можете зарегистрировать имя пользователя, которое было предпринято. –