程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# ?(問號)的三個用處

C# ?(問號)的三個用處

編輯:C#入門知識

public DateTime? StatusDateTime = null; 

腦子便也出現個問號,這是什麼意思呢?網上搜下,總結如下: 

1. 可空類型修飾符(?): 

引用類型可以使用空引用表示一個不存在的值,而值類型通常不能表示為空。 

例如:string str=null; 是正確的,int i=null; 編譯器就會報錯。 

為了使值類型也可為空,就可以使用可空類型,即用可空類型修飾符"?"來表示,表現形式為"T?" 

例如:int? 表示可空的整形,DateTime? 表示可為空的時間。 

T? 其實是System.Nullable<T>(泛型結構)的縮寫形式,也就意味著當你用到T?時編譯器編譯 時會把T?編譯成System.Nullable<T>的形式。 

例如:int?,編譯後便是System.Nullable<int>的形式。 

2. 三元(運算符)表達式(?:): 

例如:x?y:z 表示如果表達式x為true,則返回y;如果x為false,則返回z,是省略if{}else{}的簡單形式。 

3. 空合並運算符(??): 

用於定義可空類型和引用類型的默認值。如果此運算符的左操作數不為null,則此運算符將返回左操作數,否則返回右操作數。 

例如:a??b 當a為null時則返回b,a不為null時則返回a本身。 

空合並運算符為右結合運算符,即操作時從右向左進行組合的。如,“a??b??c”的形式按“a??(b??c)”計算

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved