我写了一段代码如下:
var i=5;
i='K';
正在编译代码而没有错误。就我的概念而言,我无法在var中重新赋值。因为我已将整数5分配给i。 i的类型是int。那么为什么它允许在i中分配一个char'K'?
答案 0 :(得分:8)
因为char
可以隐式转换为int
。变量i
的类型仍为int
- 您可以使用i.GetType()
对其进行测试 - 其值将是字符'K'
的代码点(即{{} 1}})。
换句话说,您的代码等同于编写:
75
“就我的概念而言,我无法在var中重新赋值。” - 这是不正确的。您无法更改隐式类型变量的类型(就像您无法更改任何其他变量的声明类型一样),但您可以重新为其分配相同类型的其他值(或一个可以这样投的人。)
答案 1 :(得分:0)
i
被隐式输入为整数。然后,您尝试将char值分配给整数。