Книга: C# для профессионалов. Том II
switch
switch
Инструкция switch
служит для тех же целей в C#, что и в C++. Она является, однако, более мощной в C#, так как используется строка в качестве проверяемой переменной, что невозможно в C++:
string MyString; // инициализировать MyString
switch (MyString) {
case "Hello":
// что-нибудь сделать
break;
case "Goodbye":
// и т.д.
Синтаксис в C# слегка отличается тем, что каждое предложение case
должно явно заканчиваться. Не разрешается одному case
содержать другой case
, если только первый case
не является пустым. Если желательно получить такой результат, используйте инструкцию goto
.
switch (MyString) {
case "Hello":
// что-нибудь сделать
goto case "Goodbye"; // перейдет к выполнению инструкций
// в предложении "Goodbye"
case "Goodbye":
// сделать что-то еще
break;
case "Black": // здесь можно провалиться, так как он пустой
case "White":
// сделать что-то еще
// выполняется, если MyString содержит
// либо "Black", либо "White"
break;
default:
int j = 3;
break;
}
Компания Microsoft решила использовать инструкцию goto
в этом контексте, чтобы предотвратить появление ошибок в случае, если требовалось выполнить пропущенный break
, и код в инструкции switch
проваливался в следующее предложение case
.