?:
i=a>b?1:2;
=============================
is
<operand>is<type>
1.如果<type>是一个类类型,而<operand>也是这个类型,或者它继承了这个类型,或者它封箱到这个类型
中,则结果为true.
2.如果<type>是一个接口类型,而<operand>也是这个类型,或者它是实现这个接口的类型,则结果为true;
3.如果<type>是一个值类型,而<operand>也是这个类型,或者它被拆箱到这类型中,则结果为true.
=============================
&和&&
&需要全部读完,&&看到一个假,后面的就不读了
|和||同理
=============================
True ^ False True
True ^ True False
False ^ True True
False ^ False False
异或运算符
=============================
算术——》运算——》关系——》逻辑
typeof 取类型
sizeof 取大小,单位字节
=============================
<1>.如果第一个操作数不是null ,整个表达式就等于第一个操作数的值
<2>.如果第一个操作数是null,整个表达式就等于第二个操作数的值。
空合并运算符
例:
int? a = null;
int b;
b = a ?? 10; //b has the value 10
Console.WriteLine("b:{0}", b);
a = 3;
b = a ?? 10; //b has the value 3
Console.WriteLine("b:{0}", b);
string c = null;
string d;
d = c ?? "default";
Console.WriteLine("d:{0}", d);
c = "c value";
d = c ?? "default";
Console.WriteLine("d:{0}", d);
测试结果
b:10
b:3
d:default
d:c value
=============================
<<和>> 位移运算符
int m=1<<2; //二进制位移,变成100,就是4(高推一位相当于*2,低推一位相当于除以2)
=============================