三种内置委托:
Action:无返回值.
Func:尖括号最后一个类型为返回值类型.必须要有返回值.
Predicate: 返回类型为bool,必须有一个参数,等价于Func<T, bool>;
注意,有返回值的委托中,如果有多个方法注册在内,返回值是最后注册的方法返回值,前面的同样会执行,只不过返回值拿不到:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text.RegularExpressions; //引用命名空间
namespace ConsoleApplication2
{
class Program
{
class TestCls
{
public TestCls ()
{
preHandler += TestPre;
preHandler += TestPre2;
}
Func<string, string> preHandler;
private string TestPre(string str)
{
Console.WriteLine("Return 2");
return "2";
}
private string TestPre2(string str)
{
Console.WriteLine("Return 3");
return "3";
}
public void DisplayInfo ()
{
Console.WriteLine(preHandler ("233"));
}
}
static void Main(string[] args)
{
TestCls tc = new TestCls();
tc.DisplayInfo();
}
}
}
打印结果: