Jest taka instrukcja w programowaniu (głównie strukturalnym- bo w programowaniu liniowym nie da się bez niej obejść), która jest bardziej znienawidzona niż php, java, sharepoint i windows millenium razem wzięte.
Mówię o GOTO. Czyli skok do labelki, rodem z basica czy asma.
Podobno bywa użyteczny w sytuacjach zbliżonych do
for (...) {
for (...) {
...
if (cośtam)
goto koniec;
}
}
koniec:
//jakiś kod
Acz ma jeszcze jedno zastosowanie.
W c# nie ma tak, że jak jedna sekcja case w switchu się skończy, to można przejść do następnej. Musimy na koniec dać albo return, albo break, albo throw, albo… goto case;P
I to jest chyba jedyny przypadek, kiedy cię nie zjedzą za użycie goto. Weźmy taki przykład:
switch (str)
switch (str)
{
case "cos":
Console.WriteLine("cos napisano");
break;
case "byle co":
Console.WriteLine("byle co napisano");
break;
case "cos innego":
Console.WriteLine("cos innego napisano");
goto case "cos";
default:
Console.WriteLine("Za cholere nie wiem co napisano");
break;
}
Tylko czy ktoś tego rzeczywiście użył?

