2012-07-12 65 views

回答

7

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 
+0

感谢的人,我没有意识到它检查的协方差和逆变。 Google上的一篇文章似乎另有说明。 – Alwyn 2012-07-13 16:55:30