可以从char分配int吗?

Col*_*nic 5 .net c# reflection

我注意到了

int number = 'a';
Run Code Online (Sandbox Code Playgroud)

是一个健全的C#声明

但那表达

typeof(int).IsAssignableFrom(typeof(char))
Run Code Online (Sandbox Code Playgroud)

返回false.这不是矛盾吗?

Jon*_*eet 13

这不是矛盾吗?

不.C#提供了一种从隐式转换charint的,但如果你看看文档,Type.IsAssignableFrom它的返回值规定:

如果c和当前Type表示相同类型,或者当前Type在c的继承层次结构中,或者当前Type是c实现的接口,或者c是泛型类型参数且当前Type表示c的约束之一,或者如果c表示值类型且当前Type表示Nullable<c>.如果这些条件均不为真,或者c为null,则返回false.

这些条件都不是真的,所以它返回false.