当我写一个for循环如下,它工作正常。为什么char在这个反编译中被转换成ushort而不是int?
for (Char ch = 'A'; ch < 'Z'; ch++)
{
Console.WriteLine(ch.ToString());
}
我认为编译器转换char类型为int,但是当我看着反编译的代码,这是我所看到的:
for (char i = 65; i < 97; i = (ushort)i + 1)
{
Console.WriteLine(i.ToString());
}
是否有人可以解释为什么编译器没有更改数据类型我从非数字到数字?
- 编辑 - 添加反编译器截图
如何解释为什么你认为它会。 – 2011-05-23 18:11:29
,因为如果你写char i = 65;我<97;我=(ushort)i + 1在IDE中,它不会工作。 – Asdfg 2011-05-23 18:13:25
一切都只是在引擎盖下。谁知道编译和反编译之间发生了多少转换。 – Hogan 2011-05-23 18:14:11