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

C#中?.运算符的作用是什么?针对代码实例的疑问

C# 空条件运算符(?.)解析

你看到的?.是C#里的空条件运算符,作用非常直接:

  • 当运算符左侧的对象不为null时,正常执行右侧的方法调用、属性或字段访问;
  • 当左侧对象是null时,整个表达式直接返回null,不会执行右侧的操作,从根源避免抛出NullReferenceException。

拿你看到的代码m_CommandBuffer?.Dispose();举例:

  • 如果m_CommandBuffer已经被实例化(非空),就会调用它的Dispose()方法来释放占用的资源;
  • 如果m_CommandBuffer是null,这行代码会直接跳过,不会尝试调用Dispose(),也就不会触发空引用报错。

它等价于下面的完整判断代码,但写法更简洁:

if (m_CommandBuffer != null)
{
    m_CommandBuffer.Dispose();
}

除了方法调用,空条件运算符还能用于属性和字段访问,比如var value = someObject?.SomeProperty;,逻辑和方法调用完全一致——someObject为空时,value直接是null,不会去访问SomeProperty。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 22:53:10