如何不仅通过继承层次结构而且通过协变和逆变来检测类型x
是否可以从类型分配?y
问问题
498 次
1 回答
8
IsAssignableFrom
确实检查协方差和逆变,你不需要其他任何东西:
// Covariance
typeof(IEnumerable<object>).IsAssignableFrom(typeof(IEnumerable<string>)).Dump(); // true
typeof(IEnumerable<string>).IsAssignableFrom(typeof(IEnumerable<object>)).Dump(); // false
// Contravariance
typeof(Action<string>).IsAssignableFrom(typeof(Action<object>)).Dump(); // true
typeof(Action<object>).IsAssignableFrom(typeof(Action<string>)).Dump(); // false
于 2012-07-13T00:50:35.027 回答