2012-07-12 67 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