可以从char分配int吗?

时间:2013-03-06 17:13:53

标签: c# .net reflection

我注意到了

int number = 'a';

是一个声音C#声明

但那个表达

typeof(int).IsAssignableFrom(typeof(char))

返回false。这不是一个矛盾吗?

2 个答案:

答案 0 :(得分:13)

  

这不是矛盾吗?

不。 C#提供了从charint的隐式转换,但如果您查看Type.IsAssignableFrom的文档,则会说明返回值:

  

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

这些条件均不属实,因此返回false

答案 1 :(得分:1)

您提出的问题略有不同。 C#中可分配的的集合通常比CLR中的可分配类型的集合更宽松。