为什么char 可以做变量在for循环中? 是否是隐式转换为int吗?

橙色阳光 2018-01-02 03:39:44
for (char i = 'A'; i < 'Z'; i++)
{
Console.Write(i);
}
Console.ReadLine();
...全文
592 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
E次奥 2018-01-04
  • 打赏
  • 举报
回复
没转换,编译器认识他; 感觉和枚举的时候比如 JGP=1,PNG=2 然后你可以直接int.Parse转换枚举值为int类似;
  • 打赏
  • 举报
回复
char 'A' 其实就是数字 65,没什么区别,编译器认得这种东西,其实也不算是什么“转换”,因为编译器只是识别出来代码的“兼容性”,然后就作为 65、66、.....这种东西编译了。
正怒月神 2018-01-02
  • 打赏
  • 举报
回复
就是隐式转换 char 可以隐式转换为 ushort、int、uint、long、ulong、float、double 或 decimal。 但是,不存在从其他类型到 char 类型的隐式转换
白衣如花 2018-01-02
  • 打赏
  • 举报
回复


显示调用的是int.operator < 所以应该是有隐式转换在
秋的红果实 2018-01-02
  • 打赏
  • 举报
回复
纠正,想要数字时,需要转换,例如Console.Write(Convert.ToInt32(i)),这才是数字65
秋的红果实 2018-01-02
  • 打赏
  • 举报
回复
无需转化 但是,第一次循环,Console.Write(i);输出的是65,而不是A 要想输出A,需要写Console.Write(i.ToString());
xuzuning 2018-01-02
  • 打赏
  • 举报
回复
C 的 char 生来就这样,很多语言都继承了这个特征,C# 也不例外
cheng2005 2018-01-02
  • 打赏
  • 举报
回复
char类型支持 <、>、+、- 等操作而已,这又什么好奇怪的。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧