public delegate TResult Func<in T1, in T2...., out TResult>(T1 arg1, T2 arg2....);
T代表输入参数,可以是1个或多个
out TResult代表输出参数
arg 委托封装方法的参数
当我们使用一个或多个参数并且返回一个值时,可以不用自己定义委托,使用已经定义好的委托。
注:若引用一个具有一个参数并且返回值为空(void)的方法,则需要使用泛型Action<T>委托
例如:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Func<int, bool> f1 = IsNumberLessThan5;
Console.WriteLine(f1(10));
Console.ReadKey();
}
private static bool IsNumberLessThan5(int number)
{
return number < 5;
}
}
}