当前位置: 首页 > news >正文

c# ??=

空合并运算符 ??,用于定义引用类型和可空类型的默认值。如果此运算符的左操作符不为Null,则此操作符返回左操作数,否则返回右操作数。

例如:

//当a不为空时返回a,为null时返回b
var c = a ?? b;

空合并赋值运算符??=,C# 8.0 及更高版本中可使用,该运算符仅在左侧操作数的求值结果为 null 时,才将其右侧操作数的值赋值给左操作数。 如果左操作数的计算结果为非 null,则 ??= 运算符不会计算其右操作数。

例如:

List<int> numbers = null;
int? i = null;numbers??= new List<int>();
numbers.Add(i ??= 17);
numbers.Add(i ??= 20);Console.WriteLine(string.Join("", numbers));//output:17 17
Console.WriteLine(i);//output 17

?.不为null时执行后面的操作

例如:

[Fact]public void UnitTest2(){var person = new Person();person.Name = person?.Code;//等价于person.Name = person == null ? null : person.Code;Person person2 = null;person2 ??= new Person();int num = (int)(person2?.Num);//等价于if (person2 != null){num = person2.Num;}else{num = 0;}}public class Person{public string Name { get; set; }public string Code { get; set; }public int Num { get; set; }}

可空类型修饰符 ?,为了使值类型也能使用可空类型,就可以使用“?”来表示,表现形式为“T?”。T?是System.Nullable<T>的缩写,更便于读取。属于泛型的一种。例如:

int i?;//表示可控的类型
DataTime time?;//表示可空的时间
http://www.lryc.cn/news/133668.html

相关文章:

  • 存储系统性能优化中IOMMU的作用是什么?
  • localhost:8080 is already in use
  • 机器学习深度学习——NLP实战(自然语言推断——数据集)
  • 攻防世界-simple_php
  • 2023MyBatis 八股文——面试题
  • 解决出海痛点:亚马逊云科技助力智能涂鸦,实现设备互联互通
  • 国际刑警组织逮捕 14 名涉嫌盗窃 4000 万美元的网络罪犯
  • MySQL卸载-Linux版
  • 快速学会创建uni-app项目并了解pages.json文件
  • 选云服务器还是物理服务器
  • 最新ChatGPT网站AI系统源码+详细图文搭建教程/支持GPT4.0/AI绘画/H5端/Prompt知识库/
  • Web3 游戏七月洞察:迈向主流采用的临界点?
  • Python爬虫——scrapy_多网页下载
  • JDK JRE JVM 三者之间的详解
  • excel常见的数学函数篇2
  • Certify The Web (IIS)
  • 【c语言】五子棋(EasyX图形库+背景音乐)
  • 【OpenCV 】对极几何标定质量验证
  • Netty:ByteBuf的清空操作
  • SpringCloud最新最全面试题
  • leetcode359周赛
  • nginx代理webSocket链接响应403
  • websocker无法注入依赖
  • 如何进行无线网络渗透测试?
  • 【Python机器学习】实验15 将Lenet5应用于Cifar10数据集(PyTorch实现)
  • Jeep车型数据源:提供Jeep品牌车系、车型、价格、配置等信息
  • clickhouse-备份恢复
  • (2018,ProGAN)渐进式发展 GAN 以提高质量、稳定性和变化
  • 负载均衡下的 WebShell 连接
  • Postman的高级用法—Runner的使用​