zoukankan      html  css  js  c++  java
  • C#中的"?"和"??"

    摘自:http://www.cnblogs.com/zxjyuan/archive/2009/10/27/1590795.html
      如果你看到C#中的“?”问号脑袋里便充满问号,那么这个贴子便是为你而写的。有人说“细节决定成败”,细节就意味着繁琐,像我这样浮躁的人现在都已经习惯了繁琐,如果你还不习惯繁琐的话,那么就把这个贴子当作一次练习机会吧。
          在C#中“?”有三种用法。
          1、可空类型修饰符(?):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空,例如:string str=null;是正确的。int i=null;编译器将报错。为了使值类型也可为空,可空类型出现了,可空类型使用可空类型修饰符?来表示,表现形式为T?。例:int?表示是可空的整 形,DateTime?表示为可空的时间。T?其实是System.Nullable<T>(泛型结构)的缩写形式,也就意味着当你用到T? 时编译器在编译时会把T?编译成System.Nullable<T>的形式,例如:int?,编译后便是 System.Nullable<int>的形式。更多细节待续……。
          2、三元(运算符)表达式(?:):如果这个你也不了解的话,那你就当我也不了解吧,不再赘述。
          3、空合并运算符(??):用于定义可空类型和引用类型的默认值。如果此运算符的左操作数不为 null,则此运算符将返回左操作数;否则返回右操作数。 例:a??b,当a为null时则返回b,a不为空时返回a本身。空合并运算符为右结合运算符,即操作时从右向左进行组合的。如,“a??b??c”的形 式按“a??(b??c)”计算。
  • 相关阅读:
    Jessica's Reading Problem POJ
    FatMouse and Cheese HDU
    How many ways HDU
    Humble Numbers HDU
    Doing Homework again
    Stacks of Flapjacks UVA
    Party Games UVA
    24. 两两交换链表中的节点
    面试题 03.04. 化栈为队
    999. 可以被一步捕获的棋子数
  • 原文地址:https://www.cnblogs.com/bruce1992/p/15337185.html
Copyright © 2011-2022 走看看