首页 > 编程语言 >C#------新特性之??、?、??= 使用

C#------新特性之??、?、??= 使用

时间:2024-08-23 16:38:42浏览次数:6  
标签:Console 为空 C# 特性 numbers WriteLine ------ null string

    public static void Main()
    {
        List<int>? numbers = null;
        int? a = null;

        Console.WriteLine((numbers is null)); //true

        // 如果numbers为空,则初始化numbers,同时添加一个5到numbers列表中
        (numbers ??= new List<int>()).Add(5);
        Console.WriteLine(string.Join(" ", numbers));  // output: 5
        Console.WriteLine((numbers is null)); //  false        


        Console.WriteLine((a is null)); //  true
        Console.WriteLine((a ?? 3)); //  3,若a不为空则返回a的值,否则返回3;此处a为空

        // 如果a为空,则赋值0;同时将a添加到numbers列表中
        numbers.Add(a ??= 0);
        Console.WriteLine((a is null)); // false        
        Console.WriteLine(string.Join(" ", numbers));  // output: 5 0
        Console.WriteLine(a);  // output: 0
    }

 

public string Name
{
    get => name;
    set => name = value ?? throw new ArgumentNullException(nameof(value), "Name cannot be null");    //若Name为空,将抛出异常
}

 

if (variable is null)
{
variable = expression;
}

和variable ??= expression;    是等效的

标签:Console,为空,C#,特性,numbers,WriteLine,------,null,string
From: https://www.cnblogs.com/echo-efun/p/18376358

相关文章

  • Android开发 - Looper 类处理异步任务和消息解析
    什么是LooperLooper是一个非常重要的概念,它与线程、消息队列和处理异步任务密切相关。是Android中用于管理线程的消息循环的类。它与线程中的MessageQueue结合工作,用于处理异步任务和消息Looper的主要概念消息队列(MessageQueue)一个用于存放要处理的消息和任务的队......
  • Java 调用电脑中安装的tesseract.exe进行图片中的文本方向识别
    StringimagePath="测试图片完整地址";StringtesseractPath="Tesseract安装路径\\tesseract.exe";ProcessBuilderprocessBuilder=newProcessBuilder(tesseractPath,imagePath,"stdout","--......
  • docker对的tomcat、mysql、redis、nginx的安装
    本章篇章主要讲解了docker对常用软件的安装说明总体步骤:搜索镜像、拉取镜像、查看镜像、启动镜像、停止容器、移除容器tomcatdockerseachertomcat//也可以在dockerhub上面查找tomcat镜像dockerpulltomcat从dockerhub上拉取tomcat镜像到本地dockerimages//查看是否......
  • 数据分析与可视化(Pandas+Matplotlib)
    Pandas用于数据处理https://pandas.pydata.org/docs/Matplotlib用于创建图表https://matplotlib.org/#安装pipinstallpandasmatplotlib#导入importpandasaspdimportmatplotlib.pyplotasplt使用Pandas处理数据#读取数据df=pd.read_csv('data.csv')......
  • IFN563 PPreliminary design
    IFN563ProjectSpecificationAssessment1:PreliminarydesignWeight:30%Due:9August(Week3Friday)Assessment2:FinaldesignandimplementationWeight:70%Due:30August(Week6Friday)OverviewThegoalofthisprojectistogainpracticalexperie......
  • Android开发 - BluetoothGattCallback 类处理蓝牙 (BLE) 设备的连接和通信解析
    BluetoothGattCallback是什么BluetoothGattCallback是一个抽象类,用于接收BLE设备的各种回调事件。这些事件包括连接状态的变化、服务的发现、特性的读取和写入等BluetoothGattCallback的主要方法onConnectionStateChange(BluetoothGattgatt,intstatus,intnewStat......
  • 六西格玛与5S管理体系并行落地,实现生产事件精益管理
    在现代制造业中,六西格玛管理和5S管理体系是提升生产效率和质量控制的重要工具。六西格玛以其严格的数据分析方法帮助企业减少过程中的变异和缺陷,而5S管理则通过优化工作环境和流程,确保生产线的整洁、有序和高效。如何将这两大管理体系成功落地,成为许多制造企业面临的挑战。构建一......
  • P1908 逆序对
    P1908逆序对跟用树状数组求如出一辙,但是它可以不离散化直接求解,因为它可以直接把区间传到函数里,正负无所谓,反正是动态开点,此题作为动态开点的演示。这种线段树十分耗费空间。#include<iostream>usingnamespacestd;constintM=15000010,INF=1e9;//M是理论值,远远达不到int......
  • [Ynoi2017] 由乃的玉米田
    题目链接:[Ynoi2017]由乃的玉米田弱化版:小清新人渣的本愿这两道题都是看会不会用bitset,bitset大胜利减操作:用一个bitset\(vis1\)记录一个数是否出现,如果有就是\((vis1\And(vis>>x)).count()\ge1\),其实就是看是否有数\(a\)和数\(a+x\)同时出现加操作:同减操......
  • JDBC和Mybatis的区别
    jdbc和mybatis的区别功能和用途‌JDBC和MyBatis的主要区别在于它们的功能和用途。‌‌JDBC(JavaDatabaseConnectivity)是Java提供的一套用于连接数据库的接口规范,它允许Java程序与数据库进行交互。JDBC是一个底层的数据库访问技术,开发人员需要手动编写SQL语句并处理结果集的转......