4
如何检测类型x
是否可以从y
类型分配,不仅通过继承层次结构,而且通过协方差和逆变?IsAssignable从协方差和反变换
如何检测类型x
是否可以从y
类型分配,不仅通过继承层次结构,而且通过协方差和逆变?IsAssignable从协方差和反变换
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
感谢的人,我没有意识到它检查的协方差和逆变。 Google上的一篇文章似乎另有说明。 – Alwyn 2012-07-13 16:55:30