我写了一段代码如下:
var i=5;
i='K';
Run Code Online (Sandbox Code Playgroud)
编译代码没有错误.就我的概念而言,我无法在var中重新赋值.因为我已将整数5分配给i.i的类型是int.那么为什么它允许在i中分配一个char'K'?
因为a char可以隐式地转换为int.变量的类型i仍然是int- 您可以使用i.GetType()- 来测试它- 它的值将是字符的代码点'K'(即,75).
换句话说,您的代码等同于编写:
int i = 'K';
Run Code Online (Sandbox Code Playgroud)
"就我的概念而言,我无法在var中重新赋值." - 这是不正确的.你不能改变类型的隐式类型的变量(就像你不能改变声明的类型任何其他变量的),但你被允许重新分配它同类型的另一个值(或一个可以浇铸成这样).
| 归档时间: |
|
| 查看次数: |
69 次 |
| 最近记录: |