c#中 ?? 是什么意思?

时间:2021-11-07 21:18:30

refer to :http://www.cnblogs.com/dupeng0811/archive/2009/03/26/1422512.html

c#中 ?? 是什么意思?

string id = Request["id"?? string.Empty;?? 
判断??左边表达式是否为null,如是null则取右边表达式的值,否则就取左边表达式的值
The ?? operator returns the left-hand operand if it is not null, or else it returns the right operand. 
例子:// 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");
    }
}