[C#] goto odwołujące się do miejsca we wcześniejszym wierszu

Witam,

Chciałbym w swoim programie użyć instrukcji goto, aby prowadziła ona do miejsca, które znajduje się ponad instrukcją goto. Jak to zrobić?

W ten sposób działa w porządku:

goto miejsce;

...

...

miejsce:

Jak zrobić to w ten sposób?

miejsce:

...

...

goto miejsce;

normalnie ?

Przykład sprawdzony i działający:

private static void Main(string[] args)

        {


        B: goto A;


        A: goto B;


        }

jak pisałem w poprzednim temacie, informacji szukaj u źródła:

http://msdn.microsoft.com/en-us/library … s2(v=vs.71.aspx

Sprawdź czy pozostałe warunki masz spełnione.

EDIT: zapomniałem dopisać ale na pewno ktoś zaraz o tym napiszę więcej. Używanie instrukcji goto rzadko kiedy jest dobrym wyborem.

Ano napisze :wink: równie dobrze można wykorzystać pętle i sterować pętlą za pomocą warunków. Mimo że czasami użycie goto wydaje się najprostszym rozwiązaniem nie jest polecane.

A co jeśli goto odwołuje się do miejsca poza metodą, w której goto się znajduje? Co zrobić, aby takie odwołanie działało?

Może łatwiej będzie, jak napiszesz co dokładnie chcesz osiągnąć. Kawałek algorytmu albo zamysł.

Do tego raczej powinno się wykorzystać return i zwrócić odpowiednią wartość aby odpowiednie posterować funkcją. Jak wyżej, napisz o co chodzi, co chcesz osiągnąć. Ja od tych kilku lat jak programuję tak jedynie w asemblerze wykorzystywałem goto, no i skrypt bat. Ani razu nie zdarzyło mi się to w języku wyższego poziomu.

Nie ma najmniejszego sensu używanie goto w C#, z wyjątkiem oczywiście instrukcji break.

Uczmy się programować z użyciem normalnych pętli i instrukcji warunkowych, a nie skakania, które zaciemnia kod.