1.goto語句
C#語言中可以用來實現跳躍功能的命令主要有:break語句、continue語句和goto語句。
只要給予一個標記,goto語句就可以將程序跳轉到標記所在的位置。
注意:
goto語句不可以跳到for循環中。
goto語句不可以跳到類的外面。
goto語句不可以退出try{}catch()finally{}語句。
2.委託與事件
①可以把委託看成一種特殊的對象類型,委託可以用於調用與委託返回值類型、參數個數、參數類型完全相同的方法。
//委託類型的定義格式
訪問修飾符 delegate 返回值類型 委託類型名(參數列表);
//委託類型的定義中不包含函數體
public delegate void MyDelegate(String name);
關於委託定義與調用的實例如下:
public delegate void MyDelegate(string name);
class program
{
public static void ChineseGreeting(string name)
{
Console.WriteLine("早上好,"+name);
}
public static void Greeting(string name,MyDelegate wt)
{
wt(name);
}
static void Main(string[] arges)
{
MyDelegate delegate1=new MyDelegate(ChineseGreeting);
Greeting("張三",delegate1);
}
}
輸出結果:
早上好,張三
還可以將多個方法賦給同一個委託,即將多個方法綁定到同一個委託。當調用這個委託的時候,將依次調用其所綁定的方法。
static void Main(string[] args) { MyDelegate delegate1; MyDelegate delegate1=new MyDelegate(ChineseGreeting); delegate1+=EnglishGreeting; Greeting("張三",delegate1); Console.ReadKey(); }
輸出結果爲:
早上好,張三
Good morning,張三
使用“delegate1-=EnglishGreeting;”可以解除方法到委託對象的綁定。
②事件的定義是基於委託的,也就是說需要先定義一個委託類型,然後在委託類型的定義之上定義一個事件。
事件的定義格式:
訪問修飾符 delegate 返回值類型 委託類型名(參數列表);
訪問修飾符 event 委託類型名 事件名;
每個事件都有一個調用列表,當事件被引發,調用列表中的方法將依次被執行。