string a; 
b=a ?? ""; //这个意思阿是不是a为null 则赋值为""

解决方案 »

  1.   

    表示如果a不为null,则b=a;如果a为null,则b=""。
      

  2.   

    MSDN上的链接?? 运算符称为 null 合并运算符,用于定义可以为 null 值的类型和引用类型的默认值。如果此运算符的左操作数不为 null,则此运算符将返回左操作数;否则返回右操作数。
      

  3.   

    ?? 运算符称为 null 合并运算符,用于定义可以为 null 值的类型和引用类型的默认值。 如果此运算符的左操作数不为 null,则此运算符将返回左操作数;否则返回右操作数。 可以为 null 的类型可以包含值,或者可以是未定义的。 ?? 运算符定义当可以为 null 的类型分配给非可以为 null 的类型时返回的默认值。 如果在尝试将可以为 null 值的类型分配给不可以为 null 值的类型时没有使用 ?? 运算符,则会生成编译时错误。 如果使用强制转换,且当前还未定义可以为 null 值的类型,则会引发 InvalidOperationException 异常。 class NullCoalesce
    {
        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");
        }
    }资料上是这样说的