日期:2014-05-18  浏览次数:21159 次

两个??问号 连在一起是什么意思?
C# code

string id = Request["id"] ?? string.Empty;




这里两个问号是什么意思呀。?

------解决方案--------------------
如果Request["id"] 不存在
string id = string.Empty;
------解决方案--------------------
?? 
判断??左边表达式是否为null,如是null则取右边表达式的值,否则就取左边表达式的值
------解决方案--------------------
The ?? operator returns the left-hand operand if it is not null, or else it returns the right operand.

C# code
// 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");
    }
}