C# 复合赋值操作符
前面讲过如何使用算术操作符来创建新值。例如,以下语句使用操作符+来创建比变量answer大42的一个值,新值将写入控制台:
Console.WriteLine(answer + 42);
前面还讲过如何使用赋值语句来更改一个变量的值。以下语句使用赋值操作符将answer的值变成42:
answer = 42;
如果希望在一个变量的值上加42,可以将赋值操作符与加法操作符合并到一起。例如,以下语句在answer上加42,并将新值赋给answer。换言之,在运行该语句之后,answer的值将比之前大42:
answer = answer + 42;
虽然这是一个有效的语句,但有经验的程序员不会这样写。在变量上加一个值是非常普遍的一个操作,所以Microsoft Visual C#专门提供了一个复合赋值操作符+=来简化这个操作。为了在answer上加42,有经验的程序员会这样写:
answer += 42;
利用这个快捷方式,可以将任何算术操作符与赋值操作符合并到一起,表5.1对此进行了总结。这些操作符统称为复合赋值操作符(compound assignment operator)。
表5.1 复合赋值操作符
提示 复合赋值操作符与简单赋值操作符具有一样的优先级和右结合性。
操作符+=也可作用于字符串;它能将一个字符串附加到另一个字符串末尾。例如,以下代码将在控制台上显示"Hello John":
string name = "John";
string greeting = "Hello ";
greeting += name;
Console.WriteLine(greeting);
但是,不能将其他任何复合赋值操作符用在字符串上。
注意 需要让一个变量递增或递减1时,不要使用复合赋值操作符,而是使用操作符++和--。例如,以下语句的写法是错误的:
count += 1;
正确写法如下:
count++;
C# 复合赋值操作符的更多相关文章
- C++ 之 重载赋值操作符
Widget 类中,定义了一个 Bitmap 类型的私有数据成员 -- pb 指针 class Bitmap { ... }; class Widget { private: Bitmap *pb; ...
- 《Visual C#从入门到精通》第四章使用复合赋值和循环语句——读书笔记
第1章 使用复合赋值和循环语句 4.1 使用复合赋值操作符 任何算术操作符都可以像这样与赋值操作符合并,从而获得复合赋值操作符. 不要这样写 要这样写 Variable=Variable*number ...
- x+=i和x = x+i比较 -- 简单赋值和复合赋值
这两个赋值方式其实是有区别的,如果最后结果的类型和左操作数的类型一样,那么这两个表达式就完全等价. 下面来看看两个例子来理解它们的区别: 编写一个程序,使得x+=i合法, x = x+i: 不合法. ...
- C++复制控制:赋值操作符和析构函数
一.赋值操作符 类定义了该类型对象赋值时会发生什么.与拷贝构造函数一样,如果类没有定义自己的赋值操作符,编译器会合成一个. 1.重载操作符的简单介绍 重载操作符是一些函数,其名字为operator后跟 ...
- C++11六大函数(构造函数,移动构造函数,移动赋值操作符,复制构造函数,赋值操作符,析构函数)
在C++中,有三大函数复制控制(复制构造函数,赋值操作符,析构函数),而在C++11中,加入了移动构造函数,移动赋值操作符.我就斗胆将他们命名为六大函数好了. 一.构造函数 c++primer中说过: ...
- ISO/IEC 9899:2011 条款6.5.16——赋值操作符
6.5.16 赋值操作符 语法 1.assignment-expression: conditional-expression unary-expression assignment-opera ...
- C++学习笔记13:运算符重载(赋值操作符2)
移动语义 完成所有权的移交,当拷贝构造和赋值构造时,目标对象的所有权必须移交给我们的新的对象,原始对象将丧失所有权,_p指针将不再指向原来的那个数组: 左值与右值 C原始定义 左值:可以出现在赋值号的 ...
- Java学习随笔2:Java复合赋值表达式的小问题
问题:i += j只是i = i + j的简写么? 答案:非也!看下面的程序: int i = 5; long j = 8; i += j; // 可以通过编译且结果正确 i = i + j; // ...
- C++学习基础六——复制构造函数和赋值操作符
1.什么是复制构造函数 复制构造函数:是构造函数,其只有一个参数,参数类型是所属类的类型,且参数是一个const引用. 作用:将本类的成员变量赋值为引用形参的成员变量. 2.什么是赋值操作符 赋值操作 ...
随机推荐
- checkbox多选、全选js效果
//全选checkbox function allCheck() { //全选input var all = $("input[name='all']"); //全部的input ...
- tinkphp3.2.3 关于事务处理。
自己做一个测试,关于事务处理的. 在对多表进行操作的时候 基本上都离不开事务. 有的操作,是要由上一操作后,产的值(如主表里插入后,要获取插入的主键ID值,返回给下面处理表用.)带到后面的表处理当中去 ...
- css实现高度垂直居中
1:单行文字垂直居中: 如果一个容器中只有一行文字的话,定义height(高度)和 line-height(行高)相等即可. 如:<div style="height:25px;lin ...
- Andrew Ng 的 Machine Learning 课程学习 (week3) Logistic Regression
这学期一直在跟进 Coursera上的 Machina Learning 公开课, 老师Andrew Ng是coursera的创始人之一,Machine Learning方面的大牛.这门课程对想要了解 ...
- JAVA避免入坑必备
1.关于@Override Annocation 对于子类(包括并且特别是匿名类)中,重写父类的函数,一定要加上@Override.这会帮助你避免很多不必要的看起来让人恼怒的错误.比如,为什么子类重写 ...
- java分页三个类 PageBean ResponseUtil StringUtil
package ssmy.page; /** * 分页类 * @author Jesse * */public class PageBean { private int page;//第几页 priv ...
- bai_du 采集代码(已过期)
<?php $url = "http://www.baidu.com/s?wd=site:www.xxxxxx.com+inurl:hot&tn=baidulaonian&am ...
- <Android 基础(十二)> TextInputLayout,让输入框更有灵性
介绍 Layout which wraps an {@link android.widget.EditText} (or descendant) to show a floating label wh ...
- Implementation with Java
Implementation with Java From:http://jcsc.sourceforge.net In general, follow the Sun coding conventi ...
- 小米手机连接adb只显示List of devices attached
使用appium的过程中,与同事交换了下手机,突然连接adb只提示List of devices attached,没有内容了咩~ 后来看到C大的帖子,http://blog.cofface.com/ ...