Проверка строкового значения переменной в случае переключателя с помощью c # - PullRequest
1 голос
/ 12 марта 2019

Я проверяю, что переменная username содержит «ali», что является строковым значением в случае переключателя, но мой учитель ранее говорил мне, что вы можете проверять только тип данных 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;

}

Ответы [ 3 ]

0 голосов
/ 12 марта 2019

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

string userName = "Ali";

switch(userName.ToLower()) 
{
    case "ali":
        Console.WriteLine("found");
        break;
    default:
        Console.WriteLine("not found");
        break;
}
0 голосов
/ 12 марта 2019

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

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

string userNAme and and you write switch(userName)

и

break: change to break;
0 голосов
/ 12 марта 2019

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

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

...