码迷,mamicode.com
首页 > 编程语言 > 详细

C#语言基础-8 运算符

时间:2020-03-31 23:12:20      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:bsp   cas   定义   优先级   表达   三目运算   判断   转换   img   

运算符

技术图片

 技术图片

  运箅符的简化操作

技术图片

     x++和++x的差别。x++是先计算后再+1,++x是先+1在进行其它运算

    int x=2;
    bool isOk=(++x=3); //isOK=true
    isOk=(x++=4); //isOK=false

  条件运算符(三目运算,三元运算)
    条件运算符?:是if-else的简化形式。首先判断一个条件,如果条件为真,就返回一个值;如果条件为假,则返回另一个值
    条件表达式?真结果:假结果;
    如 2<3?"2小于3":"2大于3";

  checked和unchecked运算符
    数值类型有取值范围限制,所以会出现值溢出的情况,所以为避免溢出,可以使用checked和unchecked。默认使用unchecked

            int i = int.MaxValue;
            checked
            {
                i++;//i+1的值会超出int的取值范围,所以编译器会抛出溢出的错误提示
            }
            Console.WriteLine(i);
            int i = int.MaxValue;
            i++;//i+1没有任何错误,此时i=-2147483648;
            Console.WriteLine(i);

  is运算符
    is运算符可以检查对象是否与特定的类型兼容

            object obj=new object();
            Console.WriteLine((obj is object));//true
            int i = 0;
            Console.WriteLine((i is string)); //false

  as运算符
    as运算符用于执行引用类型的显式类型转换。如果要转换的类型与指定的类型兼容,转换就会成功进行;如果类型不兼容,as运算符就会返回null值 。

            object obj = 1;
            object obj2 = "Liu";
            string str = obj as string;//null
            String str2 = obj2 as string;//Liu
            Console.WriteLine(str);
            Console.WriteLine(str2);

  sizeof运算符
    sizeof运算符可以确定栈中值类型需要的长度(单位是字节)


  typeof运算符
    typeof运算符返回一个表示特定类型的System.Type对象。


  可空类型和运算符
    对于值类型,不能赋null值。当有些情况可以使用null值时,就可以使用可空类型。
      int? i=null;//是合法的
    当两个值类型运算时,只要一个是null,它的运算结果就是null
      int? x=null;
      int? y=x+1;//y==null; y必须也是可空类型


  空合并运箅符
  ??用来处理可空类型和引用类型时表示null可能的值。

            int? x = null;
            int y;
            y = x ?? 1;//y==1; x==null,y=1,否则y=x
            x = 10;
            y = x ?? 1;//y==10;

运算符的优先级

优先级从高到低

技术图片

类型的安全性
  类型转换
    把数据从一种类型转换为另一种类型.
  隐式转换
    只要能保证值不会发生任何变化,类型转换就可以自动(隐式)进行。(从较小的类型隐式地转换为较大的类型)。下表中的源类型都可以安全的隐式的转换为目标类型。技术图片技术图片

  显式转换
    使用cast显式地执行这些转换。这种转换失败时会抛出异常
    语法定义:目标类型 目标变量=(目标类型)源类型变量
    使用Parse转换
    使用TryParse转换 

            long l = 123456789;
            int x = (int)l;  //转换失败时会抛出异常
            x = int.Parse("12345678");//只支持字符串类型转换,不安全的转换,转换失败时会抛出异常
            bool isOK = int.TryParse("123456", out x);//安全的转换,返还转换结果。 如果成功转换 x的值被修改为转换后的值,否则x是初始化时值。

  装箱拆箱
    装箱:把值类型转换为引用类型
    拆箱:把引用类型转换为值类型

C#语言基础-8 运算符

标签:bsp   cas   定义   优先级   表达   三目运算   判断   转换   img   

原文地址:https://www.cnblogs.com/liuxiansheng1024/p/12609071.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!