C#??运算符浅析

C#??运算符可能是一个被遗忘的运算符,很少看到有人用它,它的用法很简单却很实用:

variable ?? defaultValue

相当于

variable == null ? defaultValue : variable

有了它,一行便能搞定Lazy Evaluation了:

对于C#??运算符使用之前:

 
 
 
  1. public UserAccess Users  
  2. {  
  3.     get 
  4.     {  
  5.         if (_users == null)  
  6.         {  
  7.             _users = Proxy.GetQueryObject﹤UserAccess﹥();  
  8.         }  
  9.         return _users;  
  10.     }  

对于使用C#??运算符之后:

 
 
 
  1. public UserAccess Users  
  2. {  
  3.     get 
  4.     {  
  5.         return _users ?? (_users = Proxy.GetQueryObject﹤UserAccess﹥());  
  6.     }  

注:这个运算符只支持引用类型和Nullable类型。

C#??运算符的基本情况就向你介绍到这里,希望你对C#运算符中??有所了解。

【编辑推荐】

  1. C#数据结构与算法之队列浅析
  2. C#数据结构与算法之栈浅析
  3. C#算法一道面试题浅析
  4. C#算法一道面试题的程序实现
  5. C#运算符之算术运算符浅析
THE END