當我們必須使用爲空時鍵入C#.net?有沒有人可以用例子來解釋。什麼是C#中的可空類型?
回答
可爲空的類型是C#2.0中引入的新概念,它允許用戶爲C#語言的原始數據類型賦予空值。這裏不重要的是Nullable type是結構類型。
志文章:Nullable type -- Why we need Nullable types in programming language ?
有些不太準確,我會說'可空
請在將您的語法鏈接到SO之前修正您的語法。如果沒有人因爲語法差而理解你的解釋,那有什麼意義? – ragingasiancoder
從:http://msdn.microsoft.com/en-us/library/1t3y8s4s(v=vs.80).aspx 空類型是System.Nullable結構的實例。可爲空的類型可以表示其基礎值類型的正常值範圍,以及一個附加的空值。例如,發音爲「可爲空的Int32的可空」Int32 >可以從-2147483648到2147483647被賦予任何值,或者可以賦予它空值。可爲空<布爾>可以被分配值真或假,或空
class NullableExample
{
static void Main()
{
int? num = null;
if (num.HasValue == true)
{
System.Console.WriteLine("num = " + num.Value);
}
else
{
System.Console.WriteLine("num = Null");
}
//y is set to zero
int y = num.GetValueOrDefault();
// num.Value throws an InvalidOperationException if num.HasValue is false
try
{
y = num.Value;
}
catch (System.InvalidOperationException e)
{
System.Console.WriteLine(e.Message);
}
}
}
空類型(When to use nullable types)是可以採取null作爲值的值類型。它的默認值是null
,這意味着你沒有給它賦值。值類型的例子是整數,浮點,雙,日期時間等,這些類型的具有這些默認值
int x = 0;
DateTime d = DateTime.MinValue;
float y = 0;
對於可爲空的替代,任何上述的defualt爲null
int? x = null; //no value
DateTime? d = null; //no value
這使得它們行爲像參考類型,例如對象,字符串
string s = null;
object o = null;
他們用值從數據庫中,當值從表中返回打交道時是非常有用的是NULL
。想象一下,數據庫表中的整數值可能爲NULL,如果c#變量不可爲空,則只能用0
來表示 - 常規整數。
另外,想象一下EndDate
列,其值在將來的實際時間之前不會被確定。這可以被設置爲NULL在數據庫中,但你需要一個可空類型來存儲,在C#
DateTime StartDate = DateTime.Today;
DateTime EndDate? = null; //we don't know yet
當我們要使用C#.net可空類型?
想象一下,有一個整數變量id
表示一個特定的id
。
可以存儲1
,44
,或任何else.But你不知道,如果不能id.You只是存儲-1
或0
。你可能會想分配null
但通常null
不能分配值類型。
int id=null;//error
Nullable type
使您能夠做到這一點。
值類型等int,double,char..
不能被表示爲NULL
值。
要值類型表示null
必須使用nullable type
..
它被表示爲一個值類型接着?
int? id=null;
其transalted到
Nullable<int> id=new Nullable<int>();
默認它的可空類型的值是null
。
假設在你有一個要求,抓住客戶的出生日期,這不是一個強制性的領域中的應用。您可以在Customer類中將DateOfBirth屬性聲明爲System.DateTime類型。因爲DateTime是一個值類型,它不能接受空值,所以它會有一些默認值。
所以當客戶沒有填寫在出生日期控制的明確值,則需要將其保存在DB考慮默認爲NULL之前做一些邏輯。在DB中,您可以將NULL保存到DateTime字段。
爲了避免這些不必要的步驟來解釋UI和DA層的值,可以在C#中使用可空類型,這將使得代碼更易讀。
要了解關於可空類型的更多信息,請參閱Nullable types in C# with an example。
- 1. 什麼是C#中的可空類型?
- 2. C#。什麼類型必須是可變
- 3. C++中「abc」的類型是什麼?
- 4. 什麼是C中的複合類型?
- 5. C中的WORD類型是什麼?
- 6. C#中「half」(binary16)的類型是什麼?
- 7. c中的強類型是什麼?
- 8. 什麼是C#中的匿名類型?
- 9. 什麼是C++中的char()類型?
- 10. 什麼是空文字的類型?
- 11. 什麼是「int?」在C#類型中
- 12. C#債券中可用的數據類型是什麼?
- 13. 類型球拍中可變參數的類型是什麼?
- 14. 是可空類型的引用類型?
- 15. 爲什麼可空類型的行爲是這樣
- 16. 什麼`... |類型聲明中的b - > c是什麼意思?
- 17. C:&array_name的類型是什麼?
- 18. WINOLEAPI的C#數據類型是什麼?
- 19. 什麼是Objective-C的枚舉類型
- 20. C#中的可空類型轉換?
- 21. 選項類型和可空類型有什麼區別?
- 22. 這是爲什麼可空類型拋出一個異常
- 23. 什麼是?類型?
- 24. 什麼是C 「類型名稱」 ++
- 25. 什麼是kdb + capital C類型?
- 26. C# - 什麼對象類型是FormData
- 27. C++中的布爾型數據類型是什麼
- 28. 爲什麼c中使用複雜的空類型?
- 29. 什麼時候應該在c#中使用可爲空的類型?
- 30. 什麼是C#long類型的等效SQL Server類型?
http://msdn.microsoft.com/en-us/library/1t3y8s4s(v=vs.80).aspx –
http://www.c-sharpcorner.com/UploadFile/PashuSX/NullableTypes04282006114548AM/NullableTypes。 ASPX –