为什么Lambda不允许反差?

时间:2016-05-09 09:01:20

标签: c# lambda contravariance

我定义了以下类。

 public class Animal { }
 public class Mammal : Animal { }

为什么以下lambda语句在c#

中是非法的
Action<Mammal> m2 = (Animal a) => { }; 

但以下工作正常。

Action<Mamal> m2 = MethodThatTakesAnimal;

MethodThatTakesAnimal具有以下签名

public static void MethodThatTakesAnimal(Animal animal) { }

0 个答案:

没有答案