C# 委托詳解
委托的宣告
namespace ConsoleApp1
{
// 帶一個引數并且無回傳值的委托
//注意:委托相當于一個型別 與class平級,宣告在命名空間內,
public delegate void DlgSayHello(string name);
class Program
{
}
}
委托的使用
我們先定義一個打招呼的方法:
public static void SayHello(string name)
{
Console.WriteLine($"{name},你好啊!");
}
隨后我們在主函式利用委托將此方法以變數的形式進行傳遞,并以方法的形式呼叫,
namespace ConsoleApp1
{
// 帶一個引數并且無回傳值的委托
//注意:委托相當于一個型別 與class平級,宣告在命名空間內,
public delegate void DlgSayHello(string name);
class Program
{
static void Main(string[] args)
{
DlgSayHello dlgsayHello = SayHello;//將方法賦給委托實體
dlgsayHello("小明"); //呼叫委托實體,相當于呼叫此方法
Console.ReadKey();
}
}
}
輸出結果:

委托鏈
我們再定義一個方法:
public static void SayBye(string name)
{
Console.WriteLine($"{name},拜拜!");
}
同樣傳遞給前面宣告的委托:
namespace ConsoleApp1
{
// 帶一個引數并且無回傳值的委托
//注意:委托相當于一個型別 與class平級,宣告在命名空間內,
public delegate void DlgSayHello(string name);
class Program
{
static void Main(string[] args)
{
DlgSayHello dlgsayHello = SayHello;//將方法賦給委托實體
dlgsayHello += SayBye;//通過+=使得此委托注冊了兩個實體
dlgsayHello("小明"); //呼叫委托實體,相當于呼叫此方法
Console.ReadKey();
}
}
}
輸出結果:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/274142.html
標籤:其他
