简单理解
协变:子类转基类
逆变:基类转子类
IEnumerable<object> obj = new List<string>();//协变
Action<string> str = new Action<object>((s) => { });//逆变
MSDN:https://docs.microsoft.com/zh-cn/dotnet/standard/generics/covariance-and-contravariance
简单理解
协变:子类转基类
逆变:基类转子类
IEnumerable<object> obj = new List<string>();//协变
Action<string> str = new Action<object>((s) => { });//逆变
MSDN:https://docs.microsoft.com/zh-cn/dotnet/standard/generics/covariance-and-contravariance