![](/img/trans.png)
[英]What's the theoretically fastest access to member of nullable type in C#?
[英]What is nullable type in c#?
当我们必须在 C#.net 中使用可空类型时? 任何人都可以用例子解释一下。
可空类型(何时使用可空类型)是可以将 null 作为值的值类型。 它的默认值是null
意味着你没有给它赋值。 值类型的示例有 int、float、double、DateTime 等。这些类型有这些默认值
int x = 0;
DateTime d = DateTime.MinValue;
float y = 0;
对于 Nullable 替代方案,上述任何一项的默认值为 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
或其他任何内容。但是如果您不知道 id 怎么办。您不能只存储-1
或0
。您可能正在考虑分配null
但通常null
不能分配给值类型。
int id=null;//error
Nullable type
使您能够做到这一点。
像int,double,char..
这样的值类型不能表示为NULL
值。
要在值类型中表示null
,您必须使用nullable type
..
它表示为值类型,后跟?
int? id=null;
这被转换为
Nullable<int> id=new Nullable<int>();
可为空类型的默认值为null
。
可空类型是 C#2.0 中引入的新概念,它允许用户将空值分配给 C# 语言的原始数据类型。 重要的是这里不是 Nullable 类型是 Structure 类型。
BlogPost: Nullable 类型——为什么我们在编程语言中需要 Nullable 类型?
来自: http : //msdn.microsoft.com/en-us/library/1t3y8s4s( v=vs.80) .aspx Nullable 类型是 System.Nullable 结构的实例。 可空类型可以表示其基础值类型的正常值范围,外加一个额外的空值。 例如,Nullable<Int32>,发音为“Nullable of Int32”,可以分配从 -2147483648 到 2147483647 的任何值,也可以分配空值。 可以为 Nullable<bool> 分配值 true 或 false 或 null
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);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.