一個goto
幾個合法的用途可能是在switch
聲明:
// Though this is a very stupid example!
int number = 0;
switch (number)
{
case 0:
Console.Write("hello ");
goto case 1;
case 1:
Console.WriteLine("world!");
break;
}
順便說一句,我從來沒有發現自己使用goto
,和你的使用情況僅僅是一個荒謬的。
也許你想要的是一個事件,這是除了廣播heya!任何人,我都要做點什麼?和一些聽衆執行動作作爲對整個事件的回答。請看下面的代碼片段,以獲得進一步的細節:
public class Class1
{
private event EventHandler _BeforeDoingStuff;
private event EventHandler BeforeDoingStuff
{
add { _BeforeDoingStuff += value; }
remove { _BeforeDoingStuff -= value; }
}
public void DoStuff()
{
// Do some stuff
// Then fire the event
_BeforeDoingStuff?.Invoke(EventArgs.Empty);
// Continue with more stuff after firing the event
}
}
public class Class2
{
public Class2(Class1 class1)
{
class1.BeforeDoingStuff += (sender, e) =>
{
Console.WriteLine("I did some stuff in the middle of Class1.DoStuff!");
}
}
}
Class1 class1 = new Class1();
Class2 class2 = new Class2(class1);
詳細瞭解事件在C#here。
如果你需要這樣做,那麼你會發現一切都是錯誤的。 C#是一種程序和麪向對象的語言。你應該熟悉這些範例。 –
根據你在代碼中的意見,你只需要一個普通的方法調用,而不是典型的'goto'行爲只是去某個地方而不回來。 –
我不想開始下一個「goto is evil」的討論,但是你在這裏嘗試的是針對C#的一切。只需調用MethodFromClass2即可。爲什麼要走? – Grisgram