C#中可为NULL的运算符怎么用
发表于:2025-02-22 作者:千家信息网编辑
千家信息网最后更新 2025年02月22日,这篇文章主要介绍了C#中可为NULL的运算符怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。?.和?[]null条件运算符在C#6
千家信息网最后更新 2025年02月22日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安全错误
数据库的锁怎样保障安全
网络安全走访调研信息报道
打印服务器属性安全怎么设置
海南三联网络技术有限公司
理光wl1060打印服务器
西藏态势平台软件开发
爱趣网络技术有限公司
emule无法连接服务器
网络技术创业规划书
幻云神奇宝贝服务器下载
天津智能软件开发价目表
工业控制网络技术是物联网吗
web服务器类型
临沂便民平台软件开发系统
勤哲服务器2016
网络安全专业软科排名
dell服务器保修电话
少儿科教家庭教育与网络安全
容错服务器一直重启
软件开发的图表控件
日本网络安全法 2019
软件开发转正工作述职
长春市佳晨网络技术有限公司
中国移动网络安全规划
网络安全方面的管理制度
get和set 数据库
七年软件开发学不精
勤哲服务器2016
服务器虚拟化方案
小手拉大手网络安全教育美篇
日本网络安全法 2019