猿问

C#中的??是什么意思

C#中的??是什么意思


MMMHUHU
浏览 411回答 1
1回答

慕桂英546537

如果不赋予初值,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); // 输出nullConsole.WriteLine(nVal2); // 输出nullConsole.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非空,取计算值输出,输出10Console.WriteLine(2 * nVal2 ?? 0);}
随时随地看视频慕课网APP
我要回答