Сразу нужно отметить, что использование этого оператора не рекомендуется. В принципе он допустим, так как достался языку C# в наследство от языка C. Однако, его использование не соответствует структурному стилю программирования, и делает запутанной логику программы. Оператор goto имеет три варианта записи.
А) goto метка;
Б) goto case константное_выражение;
В) goto default;
А) goto метка;
Б) goto case константное_выражение;
В) goto default;
Первый вариант основан на следующем соображении. Все операторы языка C# могут иметь метку — уникальный идентификатор, предшествующий оператору и отделённый от него символом двоеточия. Передача управления помеченному оператору – это классическое использование оператора goto. Два других варианта используются внутри оператора switch. Они обеспечивают передачу управления в case-ветвь или default-ветвь.
Пример
using System;
public class Goto
{
public static void Main()
{
for(int i=1; i < 5; i++)
{
switch(i)
{
case 1:
Console.WriteLine("In case 1");
goto case 3;
case 2:
Console.WriteLine("In case 2");
goto case 1;
case 3:
Console.WriteLine("In case 3");
goto default;
default:
Console.WriteLine("In default");
break;
}
Console.WriteLine();
}
// goto case 1; // Error! Can't jump into a switch.
}
}
Результат
0.00 (0%) 0 votes






