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

类?.调用方法()这种写法的解释

代码:

toolBlock?.Shutdown();

这是 C# 的空条件调用

等价于:

if (toolBlock != null) { toolBlock.Shutdown(); }

意思是:如果当前toolBlock不为空,就调用它的Shutdown()方法;如果是null,就跳过,不报错。

?.空条件运算符,也叫null 条件调用

这句:

toolBlock?.Shutdown();

意思是:

如果 toolBlock 不是 null,就调用 Shutdown() 如果 toolBlock 是 null,就什么也不做

等价于:

if (toolBlock != null) { toolBlock.Shutdown(); }

为什么要有?

因为m_ToolBlocks这个列表里可能有空元素:

m_ToolBlocks = new List<ToolBlockThread> { toolBlock1, null, toolBlock3 };

如果直接写:

toolBlock.Shutdown();

toolBlock == null时,就会报错:

NullReferenceException

也就是“空引用异常”。

用:

toolBlock?.Shutdown();

就能安全跳过空对象。

简单记:

对象?.方法()

就是:

对象不为空才调用方法

类似还有:

string name = user?.Name;

意思是:

user 不为空就取 user.Name,否则返回 null
bool result = true; if (m_ToolBlocks != null) { foreach (ToolBlockThread toolBlock in m_ToolBlocks) { toolBlock?.Shutdown(); } }
http://www.jsqmd.com/news/1098880/

相关文章:

  • 部署上线 GitHub+Vercel+CloudFlare
  • 数字校园SQL注入防御:从原理到实战的纵深检测与动态响应体系
  • 数据分析师成长路径:从思维到工具,构建解决实际问题的核心能力
  • Windows系统文件hidserv.dll丢失找不到问题解决
  • 大厂必考 Binder 底层:in/out/inout/oneway 关键字、IPC 性能差异满分解析
  • DART:采样两份草稿估计思考预算,节省 67% token 效果还更好
  • ai-image-gen-mcp MCP 服务说明文档
  • 数据安全检查,这3个API盲区最容易被问穿
  • Windows 11 点击“电源和电池”设置直接闪退?罪魁祸首竟然是Sensor Service!
  • 机器学习与模式识别 第一章 机器学习导论 考点压缩
  • 吃透Spring事务 :核心原理,传播机制,隔离级别,使用场景
  • 自动化测试框架选型与Robot Framework环境搭建实战指南
  • Windows Defender深度控制架构设计与系统级安全策略管理实现
  • 基于改进YOLOv8与无人机航拍的电动自行车违规行为智能检测系统实战
  • E-Hentai下载器完整指南:如何轻松批量下载并打包图片资源
  • 如何快速部署Python自动化脚本:京东商品预约下单的完整解决方案
  • 第一次学 volatile 关键字,我看了三遍才搞懂它到底在干嘛
  • 如何免费使用Outfit字体:9种字重打造专业品牌设计的完整指南
  • 别再傻傻手写了!Python一行代码判断是不是数字,爽到飞起
  • Ansible自动化运维实战:从入门到精通,轻松管理服务器集群
  • JVM 运行时数据区 —— 5 大块内存
  • C++ Primer Plus 重读精讲 _ 指针进阶全集:三类const指针辨析、指针数组数组指针硬核区分、指针地址传参、工控函数双向改参实战
  • VMware虚拟机组网通信全链路解析(ESXi 7.0+vSphere 8.0实测验证)
  • 面向对象——多态
  • Focus架构:视觉语言模型的高效加速方案
  • 群辉Nas部署GitServer随笔
  • 别再被Python列表拷贝坑了!浅拷贝深拷贝,一个不注意就让你代码崩盘
  • 如何快速查找 *Bash* 命令的*类型*?
  • File和IO
  • 与你的 Elasticsearch 数据对话:使用 Google ADK 和 MCP 构建一个实时语音 agent ,分为 3 个组件