Action委托
static void PrintString()
{
Console.WriteLine(“Action委托”)涂屁;
}
Action a=PrintString虐拓; //Action委托是系統(tǒng)內(nèi)置的一個(gè)委托類型样勃,可以指向一個(gè)沒有返回值沒有參數(shù)的方法
Action可以通過泛型去指定Action指向的方法的多個(gè)參數(shù)的類型伪窖,參數(shù)的類型和Action聲明的參數(shù)類型一一對應(yīng):
static void PrintInt(int x)
{
Console.WriteLine(x)噪窘;
}
static void PrintIntString(int y笋庄,string str)
{
Console.WriteLine(y,“123”)
}
Action<int>=PrintInt;//定義了一個(gè)委托類型可以指向一個(gè)沒有返回值倔监,有一個(gè)int參數(shù)的方法直砂。
Action <int,string>=PrintIntString;//同上。指向一個(gè)沒有返回值浩习,有int和string兩個(gè)參數(shù)的方法静暂。
Func委托
是一個(gè)必須有返回值類型的委托。必須指定一個(gè)返回值類型谱秽。
Func<參數(shù)類型(最多可以有16個(gè)參數(shù))洽蛀,返回值類型> func=Test;
先寫參數(shù)疟赊,最后寫返回值郊供。 ·
例1:static int Test(string str)
{
Console.WriteLine(str);
return 100近哟;
}
Func<string,int> func=Test; //指向參數(shù)為string類型驮审,返回值為int類型的Test方法
Console.WriteLine(func());
例2:static int Test(int x,int y,int z)
{
return x+y+z;
}
Func<int,int,int,int> func=Test;//前三個(gè)int為參數(shù),最后一個(gè)int為返回值