C#协变和反变类型参数
示例
Func还支持协变和逆变
//类的简单层次结构。
public class Person { }
public class Employee : Person { }
class Program
{
static Employee FindByTitle(String title)
{
//这是返回的方法的存根
//具有指定头衔的员工。
return new Employee();
}
static void Test()
{
//在不使用方差的情况下创建委托的实例。
Func<String, Employee> findEmployee = FindByTitle;
//委托希望有一个方法可以返回Person,
//但是您可以为其分配一个返回Employee的方法。
Func<String, Person> findPerson = FindByTitle;
//您还可以分配代表
//返回更多派生类型
//返回返回派生类型较少的委托。
findPerson = findEmployee;
}
}