C#优雅使用null运算符

null合并运算符??

用法:左侧操作数不为空,则结果为左侧操作数,左侧操作数为空,则结果为右侧值。
示例:

string? str = null;
Console.WriteLine(str ?? "测试空值字符串"); //打印 测试空值字符串
str = "非空字符串";
Console.WriteLine(str ?? "测试空值字符串"); //打印 非空字符串

注意:

  1. 合并运算符可用于引用类型和可空值类型。
  2. 如果左侧操作数不为空,不会执行右侧表达式计算。

null合并赋值运算符??=

用法:如果左侧操作数为空则将右侧操作数赋值给左侧操作数。
示例:

string? str = null;
str ??= "合并赋值运算符"; //str值为 合并赋值运算符

注意:

  1. 合并赋值运算符可用于引用类型和可空值类型。
  2. 如果左侧操作数不为空,不会执行右侧表达式计算。

null条件运算符?.

用法:?.运算符可以像标准的"."运算符一样调用成员的属性和方法,而不用担心调用者本身为空的而出现NullReferenceException异常。如果运算符左侧为空则运算结果为null。
示例:

StringBuilder sb = null;
string s =sb?.ToString(); // s =null

注意:

  1. ?.运算符在遇到空值后不会再执行后面的运算,直接返回null
  2. 最终表达式必须能够处理空值。如错误示例:int length = sb?.ToString().Length; //error:int can not be null ,将length改为可空值类型才能正常接收int? length = sb?.ToString().Length;//ok:int? can be null
  3. null条件运算符可以和常用类型成员(字段,属性,方法,索引器)一起使用,也可与null合并运算符一起使用 string s =sb?.ToString()??"nothing"; // s ='nothing'

合理使用null运算符能减少可能产生的运行时Null异常增加代码健壮性,同时避免了大量的非空判断,更加优雅,优雅永不过时~

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值