在.net中使用双重问号

可能重复:
C#中两个问号在一起意味着什么?

什么是使用? 在.Net中? 如何在分配变量时使用它来检查? 你能否写一些代码片段来更好地解释内容? 它与一些可空的相关吗?


运营商 '??' 被称为空合并运算符,该运算符用于为可为空的值类型以及引用类型定义默认值。

当我们需要将一个可为空的变量赋值为一个不可为空的变量时,它非常有用。 如果我们在分配时没有使用它,我们会得到类似的错误

不能隐式转换类型'int?' 到'int'。 存在明确的转换(您是否缺少演员?)

为了克服这个错误,我们可以做如下...

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());    
        }
    }
}

它是空合并运算符。

链接地址: http://www.djcxy.com/p/53837.html

上一篇: usage of double question mark in .net

下一篇: Is this an if else statement