C#語法中一個問號(?)和兩個問號(??)的運算符是什麼意思?zz

1)、C#語法中一個個問號(?)的運算符是指:能夠爲 null 的類型。數據庫

 MSDN上面的解釋:ui

在處理數據庫和其餘包含不可賦值的元素的數據類型時,將 null 賦值給數值類型布爾型以及日期類型的功能特別有用。例如,數據庫中的布爾型字段能夠存儲值 true 或 false,或者,該字段也能夠未定義。spa

 

 (2)、C#語法中兩個問號(??)的運算符是指null 合併運算符,合併運算符爲類型轉換定義了一個預設值,以防可空類型的值爲Null。3d

MSDN上面的解釋:code

?? 運算符稱爲 null 合併運算符,用於定義能夠爲 null 值的類型和引用類型的默認值。若是此運算符的左操做數不爲 null,則此運算符將返回左操做數(左邊表達式);不然當左操做數爲 null,返回右操做數(右邊表達式)。 


C# Code:

int? x = null;//定義可空類型變量
int? y = x ?? 1000;//使用合併運算符,當變量x爲null時,預設賦值1000

Console.WriteLine(y.ToString()); //1000
ci

 

        /// <summary>
        /// Gets a single instance
        /// </summary>
        public static Log LogInstance
        {
              getelement

              {get

                   return _log ?? (_log = new Log()); //若是此運算符的左操做數不爲 null,則此運算符將返回左操做數;不然返回右操做數。
               }
        }input

相關文章
相關標籤/搜索