时间:2021-05-20
null与void
null值用来表示数据类型未被赋予任何值,它是一种引用类型;void表示没有类型,或者说是没有任何值。null与void的区别可以认为void是根本没有,而null是一个空箱子,里面什么都没有。
null值只能赋值给引用类型,这里注意到string也是一种引用类型;引用类型在C中称为“指针”,即存放变量位置的内存空间位置。将变量设为null,会显式地设置引用,且它本身不指向任何内存位置;
null值赋给值类型将导致编译错误。
void用于方法值的返回,其本质并不是一个数据类型,它只是用于指出没有数据类型。
System.Nullable
C#中null值不能赋值给值类型,这里的值类型包括struct在内。原因是值类型不能包含引用,null作为一种“无”的引用当然不能被值类型所引用。在实际应用中这样会造成一些问题,假如现在一个数据int类型确实无法确定它的取值。这里就需要使用可空类型。
复制代码 代码如下:
System.Nullable<int> i = null;
Console.WriteLine(i);
此时即可将int类型的i声明为null类型,同时该程序运行结果将看到无任何数据显示
复制代码 代码如下:
System.Nullable<int> i = null;
Console.WriteLine(i);
此时即可将int类型的i声明为null类型,同时该程序运行结果将看到无任何数据显示
使用GetType()查看其类型将抛出System.NullReferenceException异常
复制代码 代码如下:
System.Nullable<int> i = null;
Console.WriteLine( i.GetType());
System.Nullable<T>可简写为T?,如System.Nullable<int>可写作int?。可空类型在ADO.NET编程中大量使用。
另外Nullable类型的实例均拥有HasValue成员与Value成员,其中HasValue为bool类型,表示判断该实例是否有值;Value表示在HasValue有值时实例的取值,在HasVaue为false时使用Value将触发System.InvalidOperationException异常。
复制代码 代码如下:
int? i = null;
Console.WriteLine(i.HasValue);
Console.WriteLine(i.Value);
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
以下是System.Nullable在FCL中的定义。[Serializable,StructLayout(LayoutKind.Sequential)]pub
本文实例讲述了C#可空类型用法。分享给大家供大家参考。具体分析如下:可空类型只能用于值类型,不能用于引用类型,引用类型本身支持null值。如果直接把null赋值
引言: C#2.0中还引入了可空类型,可空类型也是值类型,只是可空类型是包括null的值类型的,下面就介绍下C#2.0中对可空类型的支持具体有哪些内容(最近一
前言项目开发中不管是前台还是后台都会遇到烦人的null,数据库表中字段允许空值,则代码实体类中对应的字段类型为可空类型Nullable,如int?,Da
为了让.Net中的值类型可以赋值为null,微软特地添加了Nullable类型,也可简写为T?。但是Nullable自身是结构体,也是值类型,那么它是如