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