C#语法糖空合并运算符??和空合并赋值运算符 ??=
Posted dotNET跨平台
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#语法糖空合并运算符??和空合并赋值运算符 ??=相关的知识,希望对你有一定的参考价值。
例子
比如说:我们有一个UserInformation类
public class UserInformation
public string Name get; set;
public List<string> Address get; set;
有下面一段代码,我们获取张三的第一个地址,如果地址为空,则返回上海市,常规做法如下
static void Main(string[] args)
UserInformation user = new UserInformation();
user.Name = "张三";
user.Address = null;
string address = user.Address?.First();
if (address == null)
address = "上海市";
于是微软的工程师觉得我们既然可以使用?.优化属性这种类型判空,那我们能不能判断当计算结果为空时,给他进行赋值呢?于是微软工程师说干就干,所以空合并运算符就应运而生了,我们的代码就变成了
static void Main(string[] args)
UserInformation user = new UserInformation();
user.Name = "张三";
user.Address = null;
string address = user.Address?.First()??"上海市";
当然有的小伙伴就说了,这样好像不太满足一种情况,比如说当我们的Address为空时,怎么给User.address赋值呢?,还是只能写成这种模式,治标不治本。
UserInformation user = new UserInformation();
user.Name = "张三";
user.Address = null;
if (user.Address == null)
user.Address= new List<string> "上海市" ;
于是微软工程师觉得你小瞧我,说我治标不治本,那我不服,我必须要搞一个空合并赋值运算符,于是这个代码就变成了
static void Main(string[] args)
UserInformation user = new UserInformation();
user.Name = "张三";
user.Address = null;
user.Address??= new List<string> "上海市" ;
今天的介绍就到此结束了,
最后大家如果喜欢我的文章,还麻烦给个关注并点个赞, 希望net生态圈越来越好!
以上是关于C#语法糖空合并运算符??和空合并赋值运算符 ??=的主要内容,如果未能解决你的问题,请参考以下文章