好象有物件導向程式設計語言以來,對於基礎型別資料,如int、float等,不支援為其賦值為null,我們為了將其表示為null,通常是賦予乙個特定的值,如int則賦值為-1。現在在c#2.0中有乙個很好的解決方法:就是使用基礎型別+?,比如int?,float?,
ms-help:
如果 ?? 運算子的左運算元非空,該運算子將返回左運算元,否則返回右運算元。
可空型別可以包含值,或者可以是未定義的。?? 運算子定義當可空型別分配給非可空型別時返回的預設值。如果在將可空型別分配給非可空型別時不使用 ?? 運算子,將生成編譯時錯誤。如果使用強制轉換,並且當前未定義可空型別,將發生 invalidoperationexception 異常。
有關更多資訊,請參見可為空的型別(c# 程式設計指南)。
複製**
// nullable_type_operator.csusing 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通...