int,float等基礎型別終於可以賦為null了

2021-08-22 05:45:51 字數 558 閱讀 5446

好象有物件導向程式設計語言以來,對於基礎型別資料,如int、float等,不支援為其賦值為null,我們為了將其表示為null,通常是賦予乙個特定的值,如int則賦值為-1。現在在c#2.0中有乙個很好的解決方法:就是使用基礎型別+?,比如int?,float?,

ms-help:

如果 ?? 運算子的左運算元非空,該運算子將返回左運算元,否則返回右運算元。

可空型別可以包含值,或者可以是未定義的。?? 運算子定義當可空型別分配給非可空型別時返回的預設值。如果在將可空型別分配給非可空型別時不使用 ?? 運算子,將生成編譯時錯誤。如果使用強制轉換,並且當前未定義可空型別,將發生 invalidoperationexception 異常。

有關更多資訊,請參見可為空的型別(c# 程式設計指南)。

複製**

// nullable_type_operator.cs

using system;

class mainclass

static string getstringvalue()

static void main()

}

int,float等基礎型別終於可以賦為null了

好象有物件導向程式設計語言以來,對於基礎型別資料,如int float等,不支援為其賦值為null,我們為了將其表示為null,通常是賦予乙個特定的值,如int則賦值為 1。現在在c 2.0中有乙個很好的解決方法 就是使用基礎型別 比如int?float?ms help 如果 運算子的左運算元非空,...

string和int float等之間的轉換

string 轉 int,float c語言中準確的說應該是char 型別轉換成int和float等型別.標頭檔案 對於c 可以用 atoi 轉int atof 轉float strtod 轉double strtol轉long strtoul轉unsigned long 反過來 int float...

int long 等基礎型別在不同平台的大小

事過n天,鼓起勇氣來好好查了一下,發現學問還是蠻大的。int型別比較特殊,具體的位元組數同機器字長和編譯器有關。如果要保證移植性,盡量用 int16 int32 int64吧,或者自己typedef int int32一下。c c 標準中只規定了某種型別的最小位元組數 防止溢位 64位指的是cpu通...