zoukankan      html  css  js  c++  java
  • 运算符

    温习一下平时不怎么用到和不太注意的运算符。

    一、checked和unchecked运算符。

    使用checked运算符,CLR会执行溢出检查,如果发生溢出则会抛出OverflowException异常。看下面的代码:

    byte by = 255;
    by++;
    Console.WriteLine(by);

    由于byte的最大值就是255,再对它进行自加操作,就超出了它的范围。因此运行我们得到的结果是0。如果我们把这段代码放在checked模块中:

    checked
    {
          byte by = 255;
          by++;
          Console.WriteLine(by);
    }

    再运行代码便会抛出OverflowException异常。
    那么所对应的unchecked运算符就是不执行溢出检查,我们从上面的例子也可以看出,unchecked是默认的行为。

    二、可空类型和运算符

    ①、可空类型可以和一元或者二元运算符一起使用。如果其中一个或者两个操作数为null的时候,那么结果就是null。

    ②、在比较可空类型时,只要有一个操作数是null,那么结果就是false。(例如6 >= null 、 6 < null,当然如果两个操作数都是null的话,那自然是相等的)

    在这里我们在顺便复习一下可空类型。

    可空类型实际是用Nullable<T>泛型结构实现的。因为可空类型使用非常频繁,所以C#为它指定一个特殊的语法,用于定义可空类型,而不使用泛型结构的语法。 因此下面的定义实际上是等价的:

    Nullable<int> x1;
    
    int ? x2;

    三、空合并运算符(??)

    空合并运算符是三元运算符的简化形式,x??x1等同于 x==null ? x1: x

  • 相关阅读:
    微服务与SOA的区别
    @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
    pika常见问题解答(FAQ)
    大容量类Redis存储--Pika介绍
    Beego开启热升级
    Beego框架的一条神秘日志引发的思考
    Redis的最常被问到知识点总结
    go语言的defer语句
    GO-REDIS的一些高级用法
    go使用go-redis操作redis 连接类型,pipline, 发布订阅
  • 原文地址:https://www.cnblogs.com/zhstar/p/2650077.html
Copyright © 2011-2022 走看看