委托
- 理解:委托就是將一個方法當作參數(shù)傳遞給另一個方法。
- 關(guān)鍵字有返回值類型,和參數(shù)類型,委托只可以給返回值類型和參數(shù)類型一樣的方法委托。
namespace 委托
{
//聲明了一個委托
public delegate int GetMax(string name, int age);
class Program
{
static void Main(string[] args)
{
GetMax get = new GetMax(GetMax2);//實例化這個委托,將GetMax這個方法傳給委托。
get("這個參數(shù)和GetMax一樣", 20);
Console.ReadKey();
//這樣就完成了一個方法的委托。
}
//聲明了一個靜態(tài)方法,返回值類型和參數(shù)類型不一樣,所以不能將這個方法傳給委托
static void GetMax1()
{
Console.WriteLine("調(diào)用不到");
}
//這個方法的返回值類型和參數(shù)類型和聲明的委托一樣,可以將這個方法傳給委托。
static int GetMax2(string name,int age)
{
Console.WriteLine("可以調(diào)用這個方法");
return 0;
}
}
}
1、Action簡介:
C#中與預(yù)定義了一個委托類型Action
它默認可以指向一個沒有返回值,沒有參數(shù)的方法。
- Action的使用
static void printString()
{
Console.WriteLine("Hello World");
}
static void Main(String[] args)
{
Action a = printString;
a();
// 輸出結(jié)果 Hello World
}
2.Func委托
1.簡介
Func 也是C#預(yù)定義的委托, 且可以指向帶有一個返回值的方法,傳遞0-16個參數(shù)。
與Action區(qū)別:Action 不能指向有返回值的方法 , 不能有返回值 。Func 可以指向有一個返回值的方法, 且必須有返回值。