我正在在C#中运行以下程序:
using System;
class MainClass {
public static void Main (string[] args) {
char seed = 'a';
char EndValue='z';
while ( seed <= EndValue){
Console.WriteLine(seed);
seed+=(char)1;
}
}
}
这可以正常工作,但是将seed+=(char)1;
更改为seed = seed + (char)1;
它引发错误
退出状态1
main.cs(9,8(:错误CS0266:无法隐式转换类型
int' to
char'。存在明确的转换(您是否缺少演员?(汇编失败:1错误(S(,0警告;在repl.it
https://repl.it/@nkshschdv/iteration-eriteration-over-char-variable
让我们看看您的代码实际在做什么。如果i
是int
i += 1
与i = i + 1
所以在你的情况下 seed+=(char)1;
与seed = (char)(seed + 1);
所以 seed = seed + (char)1;
只是缺少炭化转换,这是您这样做的隐含的。
您也可以将其写入seed = (char)((int)seed + 1);
,但是C#将CHAR自动处理为 运算符的int转换。正如Dennis_e指出的那样,由于这种隐式int转换,您只需致电seed++;