C# 操作符

来源:互联网 发布:php获取明天0点时间戳 编辑:程序博客网 时间:2024/05/21 10:13

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