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; } }