當我寫一個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