C 2 0中的可空型別以及 和 zhuan

2022-07-13 23:18:25 字數 677 閱讀 7241

最近在學習c# 2.0,在.net framework 2.0中新增加了system.nullable泛型結構,它具有處理值型別資料具和處理null的功能。例如:

system.nullablei = 2;

i = null;

system.nullableb = null;

另外c#中還提供了上述表示方法的簡寫形式:

int? i = null;

bool? b = null;

此時,i除了可以正常處理int值外還可以被賦值為null;b則可以處理true、false和null值。感覺上好像「值型別可以處理null」似的,實際上,上面的system.nullable是對int的一種擴充套件,前者可被稱為「可空的int」,後者被稱為「非空的int」,它們所指的並非同一事物。因此,當把乙個可空型別值賦給乙個非空型別時,將引發編譯錯誤,例如:

int? ni = null;

int i = ni;  //這一句將引發編譯錯誤

int? ni = null;

int i = ni ?? 0;

??運算子會首先判斷左運算元是否為空,如果為空則返回??後面給出的預設值,否則返回左運算元,其意義類似於:

int? ni = null;

int i = ni.hasvalue ? ni.value : 0;

C 中可空型別

c 提供了乙個特殊的資料型別,nullable 型別 可空型別 可空型別可以表示其基礎值型別正常範圍內的值,再加上乙個 null 值。例如,nullable int32 讀作 可空的 int32 可以被賦值為 2,147,483,648 到 2,147,483,647 之間的任意值,也可以被賦值為 ...

C 可空型別 和 語法

public void getinfo int?pagesize int?代表 pagesize 可以為null pagesize pagesize 2 上面這一行 和如下 等同,它的意思就是pagesize為null嗎,如果是就返回2,如果不是就返回pagesize pagesize pagesi...

c 的可空型別

t variablet 可空型別的基本型別,variable 表示可空型別的變數,表示可空型別 如果未賦初值,則判定為null 可空型別包含hasvalue和value兩個屬性 其中hasvalue為bool,value為該例項的值 可空型別的例項只包含乙個方法 getvalueordefault ...