缕一缕c#可null类型
在古时候,引用类型是的默认值就是null,值类型是不可以赋值null的,所以那时候,“未将对象引用到实例”这个错误,是引用类型的。后来,值类型也可以赋值null了,只要在值类型变量定义的时候,加个?就可以,比如 int? i=null。到了c#8.0,引用类型又引入了可null引用类型,这里的意思不是引用类型不可以赋值null了,而是当使用可null引用类型时,不会报“未将对象引用到实例”的错误了。
非null引用类型demo
可null引用类型demo
.net6到来时,每个项目默认是支持可null引用类型的,在.csproj中有一个配置:<Nullable>enable</Nullable>,这样引入的好处是显而易见的,就会报空引用异常,但可能对于问题的排查带来一定的难度,不过换个角度,如果我们能按业务要求有效的验证非空,让不该空的有验证,让可空的不报错,从而来提升服务质量,岂不更好。
对于一些集合数组类型的使用,也有所区别,用for循环就能有效处理空引用的异常。
using static System.Console;Order? order = null;
PrintOrder(order);static void PrintOrder(Order? order)
{WriteLine($"OrderNo:{order?.OrderNo},Amount:{order?.Amount},OrderTime:{order?.Amount}");//这还是会发空引用异常//foreach (var detail in order?.Details)//{// WriteLine($"GoodsID:{detail.GoodsID},Quantity:{detail.Quantity},Price:{detail.Price}");//}//这样就不会引发空引用异常for (int i = 0; i < order?.Details?.Count; i++){var detail = order.Details[i];WriteLine($"GoodsID:{detail.GoodsID},Quantity:{detail.Quantity},Price:{detail.Price}");}
}public class Order
{public string? OrderNo { get; set; }public decimal Amount { get; set; }public DateTime OrderTime { get; set; }public List<OrderDetail>? Details { get; set; }
}public class OrderDetail
{public string? GoodsID { get; set; }public int Quantity { get; set; }public decimal Price { get; set; }
}
缕一缕c#可null类型相关推荐
- java中的null类型---有关null的9件事
摘自 https://blog.csdn.net/qq_25077777/article/details/80174763 今天听到一个问题,java中的null类型,null竟然是一种类型 java ...
- java 类 null_深入理解java中的null“类型”
本文研究的主要是java中的null"类型"的相关实例,具体介绍如下. 先给出一道简单的null相关的题目,引发我们对null的探讨,后面会根据官方语言手册对null"类 ...
- Python中的null类型
问题描述:Python代码中我们想为一个字段赋为null,如下所示这个适合可能会报错: json.dumps({"name": "","age&quo ...
- 详细了解java中的null_深入理解java中的null“类型”
本文研究的主要是java中的null"类型"的相关实例,具体介绍如下. 先给出一道简单的null相关的题目,引发我们对null的探讨,后面会根据官方语言手册对null"类 ...
- clickhouse建表,字段类型设置为可为null类型
clickhouse建表,字段类型设置为可为null类型 基于对clickhouse中的表进行插入或者更新操作时,对于null值插入或者更新出现的问题进行处理,所以在建表的时候对字段进行表明,设置为可 ...
- JavaScript数据类型 - Null类型
Null类型 Null 类型是第二个只有一个值的数据类型,这个特殊的值就是null.从逻辑角度来看,null值表示一个空对象指针,而这也正是使用typeof检测null值时返回object的原因,如下 ...
- JavaScript(二)undefined类型、null类型
1.概述 1.undefined类型 undefined在声明变量但未对其加以初始化时,这个变量的值就是undefined. 字面量undefined的主要目的是用于比较. 包含undefined值的 ...
- (myconnpy出现,pymysql可以入冷宫了)打个小补丁,让pymysql正确处理日期类型和NULL类型 - MK2 - 博客园...
(myconnpy出现,pymysql可以入冷宫了)打个小补丁,让pymysql正确处理日期类型和NULL类型 - MK2 - 博客园 (myconnpy出现,pymysql可以入冷宫了)打个小补丁, ...
- python自定义类型转换_Python JSONDecoder自定义null类型的转换
更新12/30/2014 实现这一目标的最简单方法是使用JSONDecoder的object_hook回调,如下面的旧答案中所述.但是,由于这需要对数据中的每个键值对进行额外的函数调用,这可能会对性能 ...
最新文章
- 1.2.3 TCP/IP参考模型和五层参考模型
- python windows ui自动化_appium+python+windows UI自动化 四.简单使用Appium客户端
- 2018-03-03-解决win下凭据删除不干净而无法登录共项目录的问题
- 《利用python进行数据分析》读书笔记--第十章 时间序列(二)
- boost::graph模块实现读graph文件.dat的测试程序
- mybatis应用(二)注解的实现
- cmd小游戏_使用pygame制作Flappy bird小游戏
- Restlet Client 安装 网盘里面有压缩文件夹下载引用即可 谷歌浏览器
- 一杯水怎么测试_一杯水就能鉴别翡翠真假的高招
- springcloud20---Config加入eureka
- python 循环播放音乐_python gstreamer实现视频快进/快退/循环播放功能
- 安装Docker Desktop报错WSL 2 installation is incomplete
- 20200708每日一句
- JSR303数据校验
- 网络中的延迟和抖动问题
- mc小刘yeah粉丝网
- html中input type什么意思,HTML中type是什么意思
- 【C++进阶知识】C++类的继承和派生
- shell编程100例(附PDF下载)
- 计算机网络验证性试验