You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# 中 `=null!` 语法的具体含义是什么?

= null! 语法含义说明

我当前使用 VS 2022 及其默认的 C# 版本,以下几行代码可以正常编译通过。
代码示例

很多人刚开始看到= null!的写法会误以为是C# 10的新特性,实际上这个语法是C# 8.0就推出的可空引用类型配套功能,叫做null包容运算符(也叫null宽恕运算符),作用如下:

  • 当项目开启可空引用类型校验后,编译器会默认禁止给非空引用类型赋值null,一旦写出这类代码会直接抛出编译警告。
  • 语法末尾的!就是主动告知编译器「这里赋值为null是开发者主动控制的,后续逻辑保证这个变量/属性不会出现空引用异常」,以此压制编译器的非空校验告警。
  • 这个写法最常用的场景就是类属性初始化:比如你明确知道某个非空属性会在构造函数后续逻辑、依赖注入、框架自动初始化阶段被赋值,不想在声明的时候给一个无意义的默认值,就可以用= null!的写法规避警告,同时不需要额外关闭全局的可空校验。

内容的提问来源于stack exchange,提问作者Ernest Rutherford

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 15:18:05