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

C#中包含?的运算符使用汇总

总目录


文章目录

  • 总目录
  • 前言
  • 一、使用概述
  • 二、使用说明
    • 1.可空类型修饰符
    • 2.三目运算符
    • 3.空合并运算符
    • 4.NULL 检查运算符
  • 结语


前言

本文将含有?运算符的各种使用进行汇总,方便系统性记忆和知识回顾。


一、使用概述

用法描述
?可空类型修饰符
?:三目运算符
??空合并运算符
?.Null检查运算符

二、使用说明

1.可空类型修饰符

正常情况下我们可以将引用类型赋值为null,但是不可以将值类型赋值为null。

代码如下(示例):

string str = null;//可以
int inum = null;//不可以,编译器报错

但是如果我们使用?可空类型修饰符,则可以实现如下效果:

string str = null;//可以
int? inum = null;//可以,编译器不会报错

用可空类型修饰符 ? 来修饰,则值类型也可为空。
T? 其实是 System.Nullable(泛型结构)的缩写形式,也就意味着当你用到 T?时编译器编译时会把T?编译成 System.Nullable 的形式。

例如:int? 编译后便是 System.Nullable 的形式。

2.三目运算符

x?y:z 表示如果表达式 x 为 true,则返回 y;如果 x 为 false,则返回 z,是 if{}else{} 的简单形式。

代码如下(示例):

        static void Main(string[] args){int a=11; int b=22;int c = a > b ? a : b;Console.WriteLine($"c={c}");Console.ReadLine();//结果: c=22}

3.空合并运算符

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

例如:a??b 当 a 为 null 时则返回 b,a 不为 null 时则返回 a 本身。

空合并运算符为右结合运算符,即操作时从右向左进行组合的。

如: a??b??c 的形式按 a??(b??c) 计算。

代码如下(示例):

        static void Main(string[] args){string aStr = "aStr";string bStr = null;string cStr = aStr ?? bStr;string dStr = bStr ?? aStr;Console.WriteLine($"cStr={cStr},dStr={dStr}");Console.ReadLine();//结果   cStr=aStr,dStr=aStr//?? 更多还是用于一些类或者对象的默认值定义}

另外?? 可以理解为三元运算符的简化形式:

string cStr = aStr ?? bStr;
//效果等同于
string cStr = (aStr==null) ? bStr:aStr;

4.NULL 检查运算符

检查运算符左边的对象是否为null,如果为null,则不会进行右边的运算,直接返回null。

代码如下(示例):

    //表示获取用户的id信息//这里用了?. 表示检查UserInfo是否为nullstring id=UserInfo?.Id;

结语

以上就是本文的内容,希望以上内容可以帮助到您,如文中有不对之处,还请批评指正。


参考资料:C#运算符

相关文章:

C#中包含?的运算符使用汇总

总目录 文章目录总目录前言一、使用概述二、使用说明1.可空类型修饰符2.三目运算符3.空合并运算符4.NULL 检查运算符结语前言 本文将含有?运算符的各种使用进行汇总,方便系统性记忆和知识回顾。 一、使用概述 用法描述?可空类型修饰符?:三目运算符?…...

剑指 Offer 56 - I. 数组中数字出现的次数

剑指 Offer 56 - I. 数组中数字出现的次数 难度:middle\color{orange}{middle}middle 题目描述 一个整型数组 numsnumsnums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度…...

MySQL事务日志

1.概述 事务有4种特性:原子性、一致性、隔离性和持久性。那么事务的四种特性到底是基于什么机制实现呢? 事务的隔离性由 锁机制 实现而事务的原子性、一致性和持久性由事务的 redo 日志和undo 日志来保证 REDO LOG 称为 重做日志,提供再写入操作,恢复…...

极速开发,无限可能,2023网易低代码大赛全新赛季启动

去年火爆的低代码大赛还犹在目,近800人用轻舟低代码平台畅享开发乐趣。这不,2023网易低代码大赛即刻启动,3月6日至3月27日限时开放报名,全新角逐,正式展开!1\ 获胜者可得万元大奖、猪厂工作机会 /Low Code …...

C++ | 详细介绍缺省参数的作用

文章目录一、前言1、缺省参数概念2、缺省参数的使用规则二、全缺省参数【备胎是如何使用的♿】1、四种实参传递方式说明2、疑难细究三、半缺省参数【⭐】1、错误用法示范2、正确用法示范🔥实参缺省与形参缺省的混合辨析🔥3、小结四、缺省参数的实际应用 …...

【sdx62】sdx62分析代码中Serial Number的寄存器地址及获取Serial Number的方法

计算Serial Number寄存器地址 查看Serial Number ./boot_images/boot/QcomPkg/SocPkg/Library/XBLLoaderLib/boot_info_log.c /* Array of raw fuse addresses and names to be logged during boot loginitialization. Array must be null terminated. */ static struct boot_…...

MATLAB的快速入门

第一部分:基础知识常用命令:clc %清除命令行窗口 clear %清空工作区数据 cd %显示或改变工作目录 clf %清除图形窗口 help %打开帮助文档 save %保存内存变量到指定文件 hold %保持图形 close %关闭当前图窗 quit %退出变量&#x…...

Python中赋值、引用、深浅拷贝的区别和联系

文章目录一、对象的唯一id二、赋值三、可变对象和不可变对象四、函数的参数传递五、深拷贝和浅拷贝六、举个栗子6.1 不可变对象的拷贝6.2 可变对象的拷贝6.3 可变对象改变外层元素6.4 可变对象改变内层元素七、总结一、对象的唯一id python中的所有对象都有自己的唯一id&#…...

春招冲刺(十一):前端面试之网络总结

网络总结 Q1: GET和POST的请求的区别 应用场景:Get是一个幂等请求,一般用于请求资源。post不是幂等请求,一般用于修改资源。缓存:Get请求一般缓存,Post一般不缓存报文格式:Get请求体一般为空,…...

Mybatis插件

插件使用 动手实现plugin 首先我们需要实现一下这个Interceptor,其中plugin和setProperties方法可以不实现,plugin是因为已经有了完善的逻辑,而setProperties,如果不需要在intercept()中使用属性,也可以不设置。然后…...

计算机学科专业基础综合科目(408)

文章目录408 第一章 数据结构数据是客观事物的符号表示,是对现实世界的事物采用计算机能够识别,存储和处理的形式进行描述的符号的集合。 数据元素是数据的基本单位。一个数据元素由若干个数据项组成。数据项又成为简单数据项及复合数据项两种。简单数据…...

centos7安装教程

1.点击文件–新建虚拟机 2.根据图片一直下一步或者做一些改动 3. 点击自定义硬件,点击浏览选中下载好的ISO文件 4.配置完成后启动虚拟机 5.选择语言,中英文都可,按需求选择 6.进行设置目标位置,配置分区 7.选择网络和主机名 8.配置…...

Kafka 重平衡

Kafka 重平衡协调者RebalanceRebalance 条件Rebalance 避免Rebalance : 让单 Group 下所有的 Consumer 怎么消费订阅主题的所有分区Rebalance 时 , 所有 Consumer 要共同参与 (无法消费),在协调者 (Coordinator) 协调下,完成订阅主题分区的分配 协调者…...

PTA:L1-022 奇偶分家、L1-023 输出GPLT、L1-024 后天(C++)

目录 L1-022 奇偶分家 问题描述: L1-023 输出GPLT 问题描述: 实现代码: L1-024 后天 问题描述: 实现代码: 简单题,没写题解,看代码就能看懂 L1-022 奇偶分家 问题描述: 给…...

IDEA插件开发入门.02

前言许久没更新IDEA插件开发系列了。最近刚好在汇总日常开发中常见的代码“异味”,共享文档复制黏贴略显麻烦,所以想着是否可以搞一个IDEA插件来帮忙收集常见代码,毕竟IDEA作为后端程序员必备的开发工具,显然会方便很多。于是&…...

如何用 23 种编程语言说“Hello World”

在编程的世界里," Hello World " 往往是开发者开始学习一种新语言时写的第一个程序。这个简单的程序会将 “Hello World“ 输出在我们的屏幕上。看似很简单的行为,实际上对于每一个新学习编程语言的人来说,它代表着新的起点。那么&…...

【Linux快速入门】文件目录操作

文章目录概念1. Linux文件系统概述2. Linux文件目录结构3. Linux文件和目录操作3.1 文件操作3.1.1 创建文件3.1.2 复制文件3.1.3 移动文件3.1.4 删除文件3.1.5 查看文件3.1.6 输出指令3.1.7 >和>>指令3.2 目录操作3.2.1 创建目录3.2.2 复制目录3.2.3 移动目录3.2.4 删…...

字体反爬慢慢总结破解方式

什么是字体反爬 网页开发者自己创造一种字体,因为在字体中每个汉字都有其代号,那么以后再网页中不会直接显示这个文字的效果。而是显示其代号,因此即使获取了网页的文本内容。也只是获取到文字的代号,而不是文字本身。 简单来说&…...

Kafka 位移提交

Kafka 位移提交自动提交手动提交Consumer 的消费位移 : 记录 Consumer 下一条消息的消费位移 如 : Consumer 已消费 5 条消息 (位移: 0 - 4) , 此时 Consumer 位移 5 : 指向下一条消息的位移 提交位移 (Committing Offsets) : Consumer 向 Kafka 汇报位移数据 Consumer 能同…...

kubernetes--监控容器运行时:Falco

目录 Falco介绍 Falco架构 Falco的安装 告警规则示列 威胁场景测试: 监控容器创建的不可信任进程(自定义规则) Falco支持五种输出告警方式falco.yaml: Falco告警集中化展示: Falco介绍 Falco是一个Linux安全工具…...

Retinaface+CurricularFace模型在智能门禁系统中的实战应用

RetinafaceCurricularFace模型在智能门禁系统中的实战应用 1. 引言 想象一下这样的场景:每天早晨上班高峰期,办公楼入口排着长队等待刷卡进门;访客需要在前台登记身份证,保安还要手动核对信息。这种传统门禁方式不仅效率低下&am…...

Qwen2.5-VL图文助手体验:RTX 4090极速推理,支持对话历史和一键清空

Qwen2.5-VL图文助手体验:RTX 4090极速推理,支持对话历史和一键清空 如果你手头有一张RTX 4090显卡,想找一个能看懂图片、能聊天、还能帮你处理各种视觉任务的本地AI助手,那么今天要聊的这个工具,你可能会很感兴趣。 …...

AutoGen Studio效果展示:看Qwen3-4B如何协作完成网页设计

AutoGen Studio效果展示:看Qwen3-4B如何协作完成网页设计 1. AutoGen Studio简介 AutoGen Studio是一个基于微软AutoGen框架开发的低代码界面工具,它让构建和组合AI代理变得简单直观。通过这个平台,你可以快速创建多个AI代理,为…...

ZGC停顿时间为何突然飙升?3个被90%团队忽略的配置雷区曝光

第一章:ZGC停顿时间为何突然飙升?3个被90%团队忽略的配置雷区曝光 ZGC(Z Garbage Collector)以亚毫秒级停顿著称,但生产环境中频繁出现 10–50ms 甚至更高停顿,往往并非内存压力所致,而是源于几…...

BM42S3021-1热电偶模块嵌入式驱动与I²C集成实战

1. BM42S3021-1热电偶模块底层技术解析与嵌入式集成实践1.1 模块硬件架构与通信协议本质BM42S3021-1是Best Modules公司推出的高精度热电偶信号调理模块,其核心并非简单的IC从设备,而是一个集成了冷端补偿(Cold Junction Compensation, CJC&a…...

STM32水质监测系统开发与物联网应用

1. 项目概述 作为一名嵌入式开发工程师,我最近完成了一个基于STM32的河流水质监测系统项目。这个系统能够实时检测水体的PH值、电导率和浊度等关键参数,并通过物联网技术实现远程监控和自动调节功能。在实际应用中,我发现这套系统特别适合用于…...

核心产品强势放量,扭亏为盈的康希诺未来怎么看?

3月30日晚间,康希诺发布2025年年度报告。报告期内,公司实现营业收入10.68亿元,同比增长26.18%;实现归母净利润2787.27万元,成功实现扭亏为盈,较2024年实现重大逆转。2025年,康希诺凭借核心产品放…...

太阳能家用电池电源市场:预计到2032年将达到98.8亿美元

在全球能源转型与地缘政治风险交织的背景下,家庭能源自主性需求正催生一个高速增长的细分市场。据 恒州诚思(YH Research) 《全球太阳能家用电池电源市场报告2026-2032》预测,2032年该市场规模将达98.8亿美元,2026-203…...

Overleaf-Workshop:在VSCode中实现Open Overleaf项目的无缝协作与高效管理

Overleaf-Workshop:在VSCode中实现Open Overleaf项目的无缝协作与高效管理 【免费下载链接】Overleaf-Workshop Open Overleaf/ShareLaTex projects in vscode, with full collaboration support. 项目地址: https://gitcode.com/gh_mirrors/ov/Overleaf-Workshop…...

2026年探访阎良:这三家头疗肩颈养生馆的服务为何备受好评?

在快节奏的现代生活中,头颈肩的亚健康问题几乎成了都市人的“标配”。头痛、失眠、肩颈僵硬,这些困扰背后,是人们对专业、有效且放松的养生服务的迫切需求。近期,笔者深入西安市阎良区,实地探访了三家在本地口碑颇佳的…...