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#提供了一种从隐式转换char来int的,但如果你看看文档,Type.IsAssignableFrom它的返回值规定:
如果c和当前Type表示相同类型,或者当前Type在c的继承层次结构中,或者当前Type是c实现的接口,或者c是泛型类型参数且当前Type表示c的约束之一,或者如果c表示值类型且当前Type表示
Nullable<c>.如果这些条件均不为真,或者c为null,则返回false.
这些条件都不是真的,所以它返回false.