设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
中问网首页
我的收藏
站长博客
搜索
搜索
本版
帖子
用户
第一问答网
»
论坛
›
中问网
›
问答
›
关于c#中,a+=2的原理
返回列表
发新帖
关于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是错误的...
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
千问
主题
0
回帖
4882万
积分
论坛元老
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
积分
48824836
加好友
发消息
回复楼主
返回列表
问答
热门排行