Проверка строкового значения переменной в случае переключения с использованием c#

#c# #switch-statement

#c# #switch-инструкция

Вопрос:

я проверяю, что переменное имя пользователя содержит «ali», которое является строковым значением в случае switch, но мой учитель сказал мне ранее, что вы можете проверять только типы данных char и int, но он отлично работает со строкой, поэтому я смущен тем, что проверка строкового типа данных в switch является хорошей практикой или нет?

 string userName = "Ali";//the variable i want to check

switch(userName)
{
  case "Ali"://value i want to check
  Console.WriteLine("found");
  break;

  default:
  Console.WriteLine("not found");
  break;

}
  

Комментарии:

1. Не ясно, в чем вопрос. Как вы заметили, вы можете использовать строку в инструкции switch в C #.

2. Время найти новую школу. Черт возьми, вы не можете этого сделать на C или C . Возможно, ваш преподаватель перепутал свои языки.

3. мой вопрос в том, что я проверяю, содержит ли переменное имя пользователя «ali», которое является строковым значением в случае switch, но мой учитель сказал мне ранее, что вы можете проверять только типы данных char и int, но он отлично работает со строкой, поэтому я смущен тем, что проверка строкового типа данных в switch является хорошей практикой или нет?

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

5. завтра у меня доклад, и я беспокоюсь, поддержит ли она мою точку зрения или нет, кстати, спасибо всем вам.

Ответ №1:

Вы, безусловно, можете использовать строку в выражении switch.

В C # 6.0 вы могли бы использовать целые значения, перечисления, логические значения, символы и, да, строки. Начиная с C # 7.0, вы можете использовать любое ненулевое выражение. Смотрите официальную документацию для получения дополнительной информации.

Комментарии:

1. спасибо, я проверил, что они также используют строковое значение. уважение с моей стороны.

Ответ №2:

Да, вы можете это сделать. Но не так, как вы пытаетесь сделать. Ваша строка в switch написана заглавными буквами, а переменная — нет. Также ваша переменная названа userNAme, но в switch вы пытаетесь использовать userName. Попробуйте этот код:

 string userName = "Ali";

switch(userName.ToLower()) 
{
    case "ali":
        Console.WriteLine("found");
        break;
    default:
        Console.WriteLine("not found");
        break;
}
  

Комментарии:

1. да, вы правы, когда я набрал это, я забыл это, спасибо

Ответ №3:

Вы можете использовать переключатель управления потоком для строки

 but you find two error in your coding, because c# case sensitive

string userNAme and and you write switch(userName)
  

и

 break: change to break;
  

Комментарии:

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