zoukankan      html  css  js  c++  java
  • C#中的??是什么意思

    C#中的??是什么意思

    DJ8Angus | 浏览 49982 次  2012-01-16 12:07
    2012-01-16 12:23 最佳答案
     
    如果不赋予初值,C#的变量是不允许直接使用的。 
    但有的时候,让值的类型为空是非常有用的,
    比如三态bool,其中一个状态便是未给定值。

    泛型使用System.NullAble<T>提供了类型值为空的一种方式。
    System.NullAble<T> nullAbleInt;
    因为太常用,C#特意给了一个语法快捷
    int? nullAbleInt;
    简单的例子:
    int? nVal1 = new int?();
    int? nVal2 = null;
    int? nVal3 = 3;
    Console.WriteLine(nVal1); // 输出null
    Console.WriteLine(nVal2); // 输出null
    Console.WriteLine(nVal3); // 输出3

    原则:null与任何数数学运算结果为null,null bool 操作任何值结果为 null。

    为了减少可空类型的代码量,遇到null的时候
    C#提供了??操作符来获取如果为空的默认值。
    static void Main(string[] args)
    {
    int? nVal1 = null;
    int? nVal2 = 5;
    // nVal1为空,相乘后还是null,输出0作为默认值
    Console.WriteLine(2 * nVal1 ?? 0);
    // nVal2非空,取计算值输出,输出10
    Console.WriteLine(2 * nVal2 ?? 0);
    }

    转自:http://zhidao.baidu.com/link?url=cD0UZbZ35YoMDpLhbvVSn21iJEeaIxdGIbrsxTObnMJ3KorYtSybToSzKrJQHeoEFKaDxe4HeDLCZyudycbnma
  • 相关阅读:
    如何用VSCode编写Java程序
    使用Xcode + Python进行IOS运动轨迹模拟
    聚类(Clustering)
    异常值(outlier)
    线性回归(regression)
    自适应增强(Adaptive Boosting)
    决策树(Decision Trees)
    支持向量机(SVM)
    朴素贝叶斯(Naive Bayesian)
    ItChat与图灵机器人的结合
  • 原文地址:https://www.cnblogs.com/hellowin/p/5959106.html
Copyright © 2011-2022 走看看