什么是c#中的可空类型?

tgr*_*ith 17 c#

什么时候我们必须在C#.net中使用可空类型?任何人都可以用例子来解释.

cod*_*biz 34

可空类型(何时使用可空类型)是可以将null作为值的值类型.它的默认值null意味着您没有为其赋值.值类型的示例是int,float,double,DateTime等.这些类型具有这些默认值

int x = 0;
DateTime d = DateTime.MinValue;
float y = 0;
Run Code Online (Sandbox Code Playgroud)

对于Nullable替代方案,上述任何一个的defualt都是null

int? x = null; //no value
DateTime? d = null; //no value
Run Code Online (Sandbox Code Playgroud)

这使它们的行为类似于引用类型,例如object,string

string s = null;
object o = null;
Run Code Online (Sandbox Code Playgroud)

当从表中返回值时,它们在处理数据库中的值时非常有用NULL.想象一下,数据库表中的整数值可能为NULL,只有0在c#变量不可为空时才能表示- 常规整数.

另外,想象一个EndDate列的值,直到将来的实际时间才确定.可以在DB中将其设置为NULL,但是您需要一个可以为N的类型来存储它在C#中

DateTime StartDate = DateTime.Today;
DateTime EndDate? = null; //we don't know yet
Run Code Online (Sandbox Code Playgroud)


Ani*_*dha 5

什么时候我们必须在 C#.net 中使用可空类型?

想象一下,有一个整数变量id代表一个特定的id.

您可以存储1, 44, 或其他任何东西。但是如果您不知道 id 怎么办。您不能只存储-10。您可能正在考虑分配null但通常null不能分配给值类型。

int id=null;//error
Run Code Online (Sandbox Code Playgroud)

Nullable type 使您能够做到这一点。


像这样的值类型int,double,char.. 不能表示为NULL值。

null以值类型表示,您必须使用nullable type..

它表示为值类型,后跟 ?

int? id=null;

转换为

Nullable<int> id=new Nullable<int>();

可为空类型的默认值为null.


Pra*_*ana 1

Nullable 类型是 C#2.0 中引入的新概念,它允许用户将 null 值分配给 C# 语言的原始数据类型。重要的是这里不可以空类型是结构类型。

BlogPost:Nullable 类型 - 为什么我们在编程语言中需要 Nullable 类型?