算术运算符 运算符 含义 说明 优先级 实例 结果 ++ 增量 操作数加1 ++num,num十+ 减量 操作粘上 mumm,num- 一示 ©操作数都是整数:取整 8 一元 ©操作数至少有一个是浮点数:浮点除法 乘法 num*num*2 128 除法 第二个操作数除第一个操作数 10 num 1 10.0/m 1.25 模数 第二个操作数除第一个操作数后的余数 10 num 2 8%2.2 1.4 加法 两个操作数之和 4 10 num 18 减法 从第一个操作数中城去第二个操作数 10 -num 注意: ()算术运算符两边的操作应是数值型。若是字符型,则自动转换 成字符所对应的Jnicode码值后再进行运算 ■(2)增量运算符(+、-)可以出现在操作数之前(+variable、- -variable)或之后(variable++、variable-) 6
6 算术运算符 ▪ 注意: ◼ (1)算术运算符两边的操作应是数值型。若是字符型,则自动转换 成字符所对应的Unicode码值后再进行运算 ◼ (2)增量运算符(++、-)可以出现在操作数之前(++variable、 - -variable )或之后(variable++、 variable - - ) ☺操作数都是整数:取整 ☺操作数至少有一个是浮点数:浮点除法
赋值运算符 运算符 说明 表达式 结果 给变量赋值 int a,b; 运算后,b的值为1 ©赋值运算符的优先级最低 操作数1与 十= 给操作数1 运算后,b的值为5 b+=a; 操作数1与操作数2相减后赋值 int a,b; 给操作数1 a=2;b=3; 运算后,b的值为1 b-=a; 操作数1与操作数2相乘后赋值 int a,b; 给操作数1 a=2;b=3; 运算后,b的值为6 b*=a; int a,b; = 操作数1与操作数2相除后赋值 给操作数1 a=2;b=6; 运算后,b的值为3 b/=a; %= 操作数1与操作数2相除取余赋 int a,b; 值给操作数1 a=2;b=7; 运算后,b的值为1 b%=a;
7 赋值运算符 运算符 说明 表达式 结果 = 给变量赋值 int a, b; a = 1; b = a; 运算后,b的值为1 += 操作数1与操作数2相加后赋值 给操作数1 int a, b; a = 2; b = 3; b += a; 运算后,b的值为5 -= 操作数1与操作数2相减后赋值 给操作数1 int a, b; a = 2; b = 3; b -= a; 运算后,b的值为1 *= 操作数1与操作数2相乘后赋值 给操作数1 int a, b; a = 2; b = 3; b *= a; 运算后,b的值为6 /= 操作数1与操作数2相除后赋值 给操作数1 int a, b; a = 2; b = 6; b /= a; 运算后,b的值为3 %= 操作数1与操作数2相除取余赋 值给操作数1 int a, b; a = 2; b = 7; b %= a; 运算后,b的值为1 ☺赋值运算符的优先级最低
关系和类型测试运算符 假设intn myArray=new int1.2: 运算符」 含义 实例 结果 相等 ”ABCDEF”="ABCD False 不等 "ABCD”I="abcd” True 大于 ’a’>’s’ False 大于等于 123>=23 False 小于 a<’s True 小于等于 ae’s True xisT数据x是否属于类型T myArray is int False myArray is int [ True myArray as int[] System.Int320 返回转换为类型T的x, x as T 如果x不是T则返回 null myArray as object System.Int32 优先级比算术运算符低,比赋值运算符高。 ■各个关系运算符的优先级相同。 ■数值类型,关系运算符按照操作数的数值大小进行比较。 ■对于char类型,关系运算符比较字符的Unicode编码值 除了“==和“I=”外,其他关系运算符不能比较String对 象 8
8 关系和类型测试运算符 ▪ 假设int[] myArray = new int[]{1,2}; ▪ 优先级比算术运算符低,比赋值运算符高。 ▪ 各个关系运算符的优先级相同。 ▪ 数值类型,关系运算符按照操作数的数值大小进行比较。 ▪ 对于char类型,关系运算符比较字符的Unicode编码值 ▪ 除了“==”和“!=”外,其他关系运算符不能比较String对 象
引用类型的相等比较 ■ 比较运算符“==” ■大多数情况比较引用是否相等 ■System.String类重载了“==',比较字符串的内容 ■值类型:操作比较的是两个变量的值是否相同 。对于引用型变量表示的是两个变量在堆中存储的地址是 否相同,即栈中的内容是否相同 TrimEnd(params char[]) TrimStart(params char[]) operator !=(string,string) operator ==(string,string) Length 图 this[int] Empty 9
9 引用类型的相等比较 ▪ 比较运算符“==” ◼ 大多数情况比较引用是否相等 ◼ System.String类重载了“==”,比较字符串的内容 ◼ 值类型: 操作比较的是两个变量的值是否相同 ◼ 对于引用型变量表示的是两个变量在堆中存储的地址是 否相同,即栈中的内容是否相同
is运算符 ■s可以检查对象是否与特定类型兼容,“兼容”表示对象 是该类型,或派生于该类型 ■ e isT e是表达式,T是数据类型 ■对象为null,结果为False lis和as运算的使用 int i=123; C:\Windows\s. object obj=456; 123 is int 456is int if(i is int) is A. 请按任意键继续。 Console.WriteLine("[O)is int",i); if(obj is int Console.WriteLine("(O}is int",obj); Aa=newA(0月 Bb=new B(); 其中:A是B的父类 if(a is B) Console.WriteLine("a is B."); if (b is A) Console.WriteLine“bisA.")月 10
10 is 运算符 ▪ is可以检查对象是否与特定类型兼容,“兼容”表示对象 是该类型,或派生于该类型 ▪ e is T ▪ 对象为null,结果为False ▪ is 运算符只考虑引用转换、装箱转换和拆箱转换 例: 关系运算符 e是表达式,T是数据类型 //is和as运算的使用 int i = 123; object obj = 456; if(i is int) Console.WriteLine("{0} is int",i); if(obj is int ) Console.WriteLine("{0}is int",obj); A a = new A(); B b = new B(); if(a is B) Console.WriteLine("a is B."); if (b is A) Console.WriteLine(“b is A."); 其中:A是B的父类