又一次弱弱的问 ...

Violin16 2010-05-06 04:51:16
这几天连着问了几个比较白的问题对这里的大哥们来说 ..
可是,还是禁不住想问一个问题..
我真的翻书了..上网查资料.. 可还是想不明白..

希望大家不要感觉很烦 .. 很不屑 ...



具体的困惑就是..
char a='a';
Textbox.text += (int)a;

得到 a至z的转型值为97~122 A至Z是65~90
和ASCII码是一样的.. 可C#字符不是用unicode方式编码的么 .!?
巧合么 ..!?



还有就是这行代码: Textbox.text += (int)a;
如果去掉 "+" 符号,就提示 无法将类型“int”隐式转换为“string",可有了"+", 为什么就可以了 !?
(如果没有强制装换(int),就提示 无法将类型“char”隐式转换为“string"可有+ 就可以..)
...全文
127 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
HYH 2010-05-06
  • 打赏
  • 举报
回复
[Quote=引用楼主 violin16 的回复:]
这几天连着问了几个比较白的问题对这里的大哥们来说 ..
可是,还是禁不住想问一个问题..
我真的翻书了..上网查资料.. 可还是想不明白..

希望大家不要感觉很烦 .. 很不屑 ...



具体的困惑就是..
char a='a';
Textbox.text += (int)a;

得到 a至z的转型值为97~122 A至Z是65~90
……
[/Quote]

heifengxia 2010-05-06
  • 打赏
  • 举报
回复
[Quote=引用楼主 violin16 的回复:]
如果去掉 "+" 符号,就提示 无法将类型“int”隐式转换为“string",可有了"+", 为什么就可以了 !?
[/Quote]


没有 + 的时候 就是赋值了 string != int 类型的.就抱错了.

有+ 的话 ,就成了 (String 类型 ) = (String 类型) + (int 类型) ;

你就想下面代码来理解。


Console.WriteLine("123" + 1);//1231
ginni215 2010-05-06
  • 打赏
  • 举报
回复
Textbox.text += (int)a;
写完整了就是:Textbox.text = "" + (int)a;
字符串和一个数值型连接的话就会把数值型先变为字符串型的了。所以就成了
Textbox.text = "" + "97";
q107770540 2010-05-06
  • 打赏
  • 举报
回复
+= 有一个强制类型转换
= 纯赋值操作
ck11926375 2010-05-06
  • 打赏
  • 举报
回复
Textbox.text += (int)a
==
Textbox.text = Textbox.text + (int)a
这里把int类型转换成string类型了

Textbox.text = (int)a 或者 a
肯定要报错 两个类型都不一样的怎么赋值
gnimgnot 2010-05-06
  • 打赏
  • 举报
回复
+=的时候 就是Textbox.text = Textbox.text+(int)a;
这么加的时候他自动会转换。

char a='a';
int(a);
这么转换好像与编码无关

个人意见,仅供参考
threenewbee 2010-05-06
  • 打赏
  • 举报
回复
char是1 bit的ascii。

+=和=是不同的。=是引用传递。字符串是只读的。表面上看 str1 = str1 + str2。
其实是
str3 = str1
str1 = new string
str1 = strcat(str3, str1)

111,113

社区成员

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

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

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