种子 =(char)1之间有什么区别?和种子=种子 (char)1;

  • 本文关键字:种子 char 区别 之间 c#
  • 更新时间 :
  • 英文 :


我正在在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 += 1i = 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++;

最新更新