Это неверно: typeof(double).IsAssignableFrom(typeof(int))
Это неверно: typeof(int).IsAssignableFrom(typeof(double))
Но это работает:
double a = 1.0;
int b = 1;
a = b;
Ясно, что double назначается из int, но фреймворк IsAssignableFrom() ошибочно.
Почему? или это ошибка в .NET, вызванная особым характером int и double, которые не имеют отношения наследования, но могут быть назначены (в одном направлении)?