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