千家信息网

C#中可为NULL的运算符怎么用

发表于:2024-09-21 作者:千家信息网编辑
千家信息网最后更新 2024年09月21日,这篇文章主要介绍了C#中可为NULL的运算符怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。?.和?[]null条件运算符在C#6
千家信息网最后更新 2024年09月21日C#中可为NULL的运算符怎么用

这篇文章主要介绍了C#中可为NULL的运算符怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

?.和?[]

null条件运算符在C#6以后可用,仅当操作数为非null时才会访问成员或者访问元素。?.和?[]很好区分;我们知道'.'是访问成员或者命空间啥的,'[]' 索引器访问,以下演示运算符的用法:

 static double? SumNumbers(List setsOfNumbers, int indexOfSetToSum)
{
//如果 setsOfNumbers 非空,访问指定的索引;如果对应元素的索引不为空,求和
return setsOfNumbers?[indexOfSetToSum]?.Sum() ;
}

var sum1 = SumNumbers(null, 0);
Console.WriteLine(sum1??Double.NaN); // 输出: NaN

var numberSets = new List { new[] { 1.0, 2.0, 3.0 }, null };

var sum2 = SumNumbers(numberSets, 0);
Console.WriteLine(sum2 ?? Double.NaN); // 输出: 6

var sum3 = SumNumbers(numberSets, 1);
Console.WriteLine(sum3 ?? Double.NaN); // 输出: NaN

??

NUll 合并运算符,什么意思?就是如果这个值为空,就使用另外一个值, a??b,如果a为非null,则结果为a;否则结果为b。仅当a为null时,操作才计算b。常用场景比如:使用throw表达式作为??运算符的右操作数,检测数据、当获取为空时赋值默认值等等。

var comment = _blogService.GetBlogCommentById(id)
?? throw new ArgumentException("指定的id为查到对应数据!", nameof(id));

??=

运算符 ??= 是在C#8.0引入的 null 合并赋值运算符。什么意思?就是当左操作数计算为null时,才能使用运算符??= 将其有操作符的值 赋值给左操作数。实例代码如下:

List numbers = null;
int? i = null;

numbers ??= new List();
numbers.Add(i ??= 66);
numbers.Add(i ??= 99);

//等价于一下代码
//if (i==null)
//{
// i = 66;
// numbers.Add(i.Value);
//}

//if (i == null)
//{
// i = 99;
//}
//numbers.Add(i.Value);


Console.WriteLine(string.Join(" ", numbers)); // 输出: 66 66
Console.WriteLine(i); // output: 66

感谢你能够认真阅读完这篇文章,希望小编分享的"C#中可为NULL的运算符怎么用"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

运算符 运算 操作数 篇文章 输出 索引 C# 代码 元素 就是 意思 成员 数据 结果 价值 兴趣 同时 场景 实例 常用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 服务器安装一个或者多个角色失败 数据库表字段增位 空间数据库图片大全 关于计算机网络技术方面的职业 雅量软件开发怎么样 网络安全十个一六个好 阿里云服务器取出镜像 阿里云数据库规范 在履行网络安全监督责任中 www服务器 南京金起子互联网科技 polycom录播服务器 宝德服务器默认管理口地址 省总队服务器什么时候能恢复正常 软件开发服务费合同收费下载 湖北恩施惠动网络技术有限公司 ibm服务器驱动安装 金风科技 能源互联网产品 网络技术对企业财务的重要 百度网络安全中心的电话号码 服务器安装一个或者多个角色失败 db2数据库用户迁移 软件开发小组的名字 网络技术中负载和吞吐量 future网络安全的未来 国家认可网络安全大学吗 文件服务器的安装配置与管理 密云区综合软件开发平台 福建移动私有云空间云服务器 着力保障网络安全稳定运行
0