C# 操作符

CategoryOperator
算术+ - * / %
逻辑& | ^ ~ && || !
字符串连接+
自加, 自减 ++ --
移位<< >>
比较== != < ><= >=
赋值= += -= *= /= %= &= |= ^= <<= >>=
取指[]
类型sizeof is typeof as
溢出异常checked unchecked
Null coalescing operator??

 

is


检查当前的对象是否兼容要检查的类型,即是否是这个类型或是否继承自这个类型
int i = 10;
if (i is object)
{
Console.WriteLine(“i is an object”);
}

 

as
显式类型转化,如果类型不兼容,将返回null
object o1 = “Some String”;
object o2 = 5;
string s1 = o1 as string; // s1 = “Some String”
string s2 = o2 as string; // s2 = null

typeof
返回System.Type类型

 

Nullable Types and Operators

?
在C#里一个值类型的变量不可能是Null的,他包含了一个值类型的类型本身。这就是为什么我们管值类型叫做值类型。
但是很多情况下会有问题。可以定义一个列的数据类型是32bit的整型数而对应FCL中的Int32类型。但是,这一列在数
据库中暗示着可能为空,就意味着这一列的数据为空是可以接受的。但是使用.NET Framework 来操作数据库中的数据
是很困难的因为CLR不允许int32 的值为空的这一种表现形式。
为了改进这个形式,微软增加了一个Nullable类型的变量在CLR中。
      Int32? a = 5;
            Int32? b = null;
            Int32? c = (Int32)a;
            Double? d = 5;
            Double? e = b;
            a++;//a = 6
            b = -b;//b = null
            a = a + 3; // a = 9
            b = b * 3; // b = null;

 对于(+ ++ = == ! ~) 一元的 如果开始null,结果还是null
 (+ ++ = == ! ~) 一元的 如果开始null,结果还是null

  (+ - * / % & | ^ << >>) 二元的,一个是null,另一个也是null

 ( == !=). =运算符,如果操作数都是null的话,那么他们相等。如果一个是null,那么不想等。如果都不是null,那么比较数值大小再返回是否相等。

 (< > <= >=)比较运算符,如果一个是null,返回false。如果都不是null,那么比较数值大小。再返回。


??
需要两个操作数。如果左面的操作数不为null,那么返回左面的操作数。如果左边的操作符为空的话,那么返回右边的操作符.
??操作很方便,可以用来设置变量的初始值。

 

Int32? b = null;

Int32? x = b ?? 123;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值