c#中 ?? 是什么意思?

时间:2022-05-08 21:13:52
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 " );
    }
}