比如:
string s1 = null ?? "abc";
string s2 = "def" ?? "ghi";
string s3 = null ?? null;
执行后:
s1 = "abc";
s2 = "def";
s3 = null;

解决方案 »

  1.   


    if (ConfigurationManager.AppSettings.Get("Name") != null)
    return ConfigurationManager.AppSettings.Get("Name") ?? String.Empty; 
    else
    return String.Empty; 
      

  2.   

    看MSDN啊~~~~~~,帮你贴了如果 ?? 运算符的左操作数非空,该运算符将返回左操作数,否则返回右操作数。备注
    可空类型可以包含值,或者可以是未定义的。?? 运算符定义当可空类型分配给非可空类型时返回的默认值。如果在将可空类型分配给非可空类型时不使用 ?? 运算符,将生成编译时错误。如果使用强制转换,并且当前未定义可空类型,将发生 InvalidOperationException 异常。 有关更多信息,请参见可空类型(C# 编程指南)。// nullable_type_operator.cs
    using System;
    class MainClass
    {
        static int? GetNullableInt()
        {
            return null;
        }    static string GetStringValue()
        {
            return null;
        }    static void Main()
        {
            // ?? operator example.
            int? x = null;        // y = x, unless x is null, in which case y = -1.
            int y = x ?? -1;        // Assign i to return value of method, unless
            // return value is null, in which case assign
            // default value of int to i.
            int i = GetNullableInt() ?? default(int);        string s = GetStringValue();
            // ?? also works with reference types. 
            // Display contents of s, unless s is null, 
            // in which case display "Unspecified".
            Console.WriteLine(s ?? "Unspecified");
        }
    }