程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C# 運算符 ?、??、?: 各種問號的用法和說明

C# 運算符 ?、??、?: 各種問號的用法和說明

編輯:關於C語言

1、可空類型修飾符(?):引用類型可以使用空引用表示一個不存在的值,而值類型通常不能表示為空,例如:string str=null;是正確的。int i=null;編譯器將報錯。為了使值類型也可為空,可空類型出現了,可空類型使用可空類型修飾符?來表示,表現形式為T?。例:int?表示是可空的整形,DateTime?表示為可空的時間。T?其實是System.Nullable<T>(泛型結構)的縮寫形式,也就意味著當你用到T?時編譯器在編譯時會把T?編譯成System.Nullable<T>的形式,例如:int?,編譯後便是System.Nullable<int>的形式。

復制代碼 代碼如下:
int a; //a<>null
int ?b; //b=null
int ?c = b+1; //c=null;

2、空合並運算符(??):用於定義可空類型和引用類型的默認值。如果此運算符的左操作數不為 null,則此運算符將返回左操作數;否則返回右操作數。 例:a??b,當a為null時則返回b,a不為空時返回a本身。空合並運算符為右結合運算符,即操作時從右向左進行組合的。如,“a??b??c”的形式按“a??(b??c)”計算。

復制代碼 代碼如下:
int?a=null; int b;(聲明a和b)
b=a??2; //b=2;
a=6;b=a??8;//b=6;

3、三元(運算符)表達式(?:):如果這個你也不了解的話(我很不相信),那你就當我也不了解吧,不再贅述。

復制代碼 代碼如下:
int a=1>0?1:0 //a=1;

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