Это неверно: 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, которые не имеют отношения наследования, но могут быть назначены (в одном направлении)?