継承階層だけでなく、共変性と反変性によってもx
型が型から割り当て可能かどうかをどのように検出できますか?y
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 に答える