C#语言提供了3大类运算符
一元运算符:一个操作数,比如i++
二元运算符:比如x+y
三元运算符:只有一个:“?:”。
点运算符
指定类型或命名空间的成员,如System.Console.WriteLine(“hello”);
圆括号运算符()
(1)制定表达式运算顺序
(2)用于显示转换
(3)用于方法或委托将参数放在括号内
方括号运算符[]
(1)用于数组和索引:
int[]a;
a=new int[100];
a[0]=a[1]=1;
for(int i=2;i<100;++i)
a[i]=a[i-1]+a[i-2];
(2)用于特性
[Conditional("DEBUG")]
void TraceMethod(){}
(3)用于指针(非托管模式)
unsafe void M()
{
int[] nums={0,1,2,3,4,5};
fixed(int *p=nums)
{
p[0]=p[1]=1;
for(int i=2;i<100;++i)
p[i]=p[i-1]+p[i-2];
}
}
new 运算符
(1)用于创建对象和调用构造函数,如
Class obj=new Classl();
(2)用于创建匿名类型的实例
递增递减运算符
“++”运算符将变量的值加一,如x++;++x
相等运算符==、!=
比较两个值是否相等或者不相等
关联运算符
比较两个值的大小
typeof运算符
获取类型的System.Type对象,如System.Type type=typeof(int);
is运算符
检查对象是否给定类型兼容,x is T 含义为如果x为T,则返回True;否则返回False,例如:
static void Text(object o){
if(o is Classl)
{
a=(Classl)o;
}
}
as 运算符
x as T 含义为返回类型为T的x,x is T含义为如果x为T,则返回True,否则返回False,例如
Class c=new Classl();
Base b=c as Base;
if(b!=null)
{......}
数字运算符+ - * / %
加减乘除求余数
条件运算符 && || ?:
&&:条件“与”,如x&&y的含义是仅当x为True时计算y
|| :条件“或”,如x||y的含义是仅当x为False时计算y
?: 三元运算符。如a=x?:y:z的含义是如果x为True则a为y,如果x为False则a为z
逻辑操作符(按位操作运算符)
& 逻辑与
|逻辑或
!逻辑反
~ 按位求反
<<逻辑左移
“<<" 逻辑右移
例如x<<y含义是将x向左移动y位
赋值运算符
=
+=
-=
*=
/=
%=
<<=
>>=
&=
^=
|=
x<<=y相当于x=x<<y