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ł?