在var中重新分配'K'

时间:2012-06-27 18:17:51

标签: c#

我写了一段代码如下:

var i=5;
i='K';

正在编译代码而没有错误。就我的概念而言,我无法在var中重新赋值。因为我已将整数5分配给i。 i的类型是int。那么为什么它允许在i中分配一个char'K'?

2 个答案:

答案 0 :(得分:8)

因为char可以隐式转换为int。变量i的类型仍为int - 您可以使用i.GetType()对其进行测试 - 其值将是字符'K'的代码点(即{{} 1}})。

换句话说,您的代码等同于编写:

75

“就我的概念而言,我无法在var中重新赋值。” - 这是不正确的。您无法更改隐式类型变量的类型(就像您无法更改任何其他变量的声明类型一样),但您可以重新为其分配相同类型的其他值(或一个可以这样投的人。)

答案 1 :(得分:0)

在第一次分配期间,

i被隐式输入为整数。然后,您尝试将char值分配给整数。