关于c#中,a+=2的原理

[复制链接]
查看11 | 回复5 | 2008-10-23 19:36:32 | 显示全部楼层 |阅读模式
c#中的表达式 a+=b 我知道它的意思是把a的值加b以后再赋值给a
和 a=a+b 是一个意思。
那么我想知道的是,既然是一个意思,为什么还要创建一个 a+=b 这样的格式出来?不是多此一举吗?
语言就是要将球简单易懂,让“人”一看就明白,创建这样的格式,难道是为了卖弄“它”的高深吗?
如果不是这样,难道 a+=b 的执行效率(计算机)要比 a=a+b 高吗?原理何在?
类似的还有 a++ 和 ++a ,等效于 a=a+1 ,但这个我理解,因为“它”是有必要的,是可以给 a 的自身增加并且同时执行表达式,这样是可以提高执行效率的,所以 a++ 有创建的必要的。
但 a+=b 我就不知道它的奥妙之所在了。
麻烦各位 c# 高手谈谈你们的看法!

回复

使用道具 举报

千问 | 2008-10-23 19:36:32 | 显示全部楼层
因为c#的语法也继承自c语言家族,而c语言是作为一种较为接近底层的语言产生的,在汇编语言中,有三操作数的ADD指令: ADD a, b, c 这就是 a=b+c 也有二操作数的ADD指令:ADD a, b 这就是 a+=b 还有一操作数的自增指令: INC a 这就是 a++ 所以相应的风格也随着c语言带到了c#之中 至于意义方面,将一个变量a的值增加b, a+=b这种写法显然比a=a+b更贴切更自然而效率方面,a+=b和a=a+b在c#中是没有区别的...
回复

使用道具 举报

千问 | 2008-10-23 19:36:32 | 显示全部楼层
举个简单的例子吧.比如字符串的连接.String where = " WHERE 1=1";...String condition1 = " AND FilmName = '黑与白'";String condition2 = " AND FilmRegion = '法国'";...if (checkName){
wher...
回复

使用道具 举报

千问 | 2008-10-23 19:36:32 | 显示全部楼层
1.效率2.直观...
回复

使用道具 举报

千问 | 2008-10-23 19:36:32 | 显示全部楼层
a+=b 确实比 a=a+b快递多...
回复

使用道具 举报

千问 | 2008-10-23 19:36:32 | 显示全部楼层
两者是不同的 比如short a+=1是对的,short a=a+1是错误的...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行