usage of double question mark in .net
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
What do two question marks together mean in C#?
它的用法是什么?在.NET中?如何在分配变量时使用它进行检查?你能写一些代码片段来更好地解释内容吗?它与一些可以为空的相关吗?
接线员??'被称为空合并运算符,用于为可为空的值类型以及引用类型定义默认值。
当我们需要将一个可以为空的变量赋给一个不可以为空的变量时,它是有用的。如果我们在分配时不使用它,我们会得到一个错误,比如
无法隐式转换类型"int"?"int"。存在显式转换(是否缺少强制转换?)
为了克服这个错误,我们可以做如下…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace GenConsole { class Program { static void Main(string[] args) { CoalescingOp(); Console.ReadKey(); } static void CoalescingOp() { // A nullable int int? x = null; // Assign x to y. // y = x, unless x is null, in which case y = -33(an integer selected by our own choice) int y = x ?? -33; Console.WriteLine("When x = null, then y =" + y.ToString()); x = 10; y = x ?? -33; Console.WriteLine("When x = 10, then y =" + y.ToString()); } } } |
它是空合并运算符。