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

咨询C#中`is { }`语法糖的官方文档位置

这个C#语法糖的本质是什么?

这是C# 9.0及以后支持的模式匹配+变量声明组合写法,其中{ }是空值模式的简写,和not null完全等价,跟你查到的列表模式没关系。

拆解代码逻辑

原代码while ((line = sr.ReadLine()) != null)是先把ReadLine()的结果赋值给line,再判断是否为null;新写法while (sr.ReadLine() is { } line)做的是同一件事,但逻辑顺序更清晰:

  1. 执行sr.ReadLine()获取返回值
  2. 判断这个返回值是否不为null({ }就是干这个的)
  3. 如果不为null,就把这个值赋值给变量line,同时整个表达式返回true,进入循环体
  4. 如果返回null,表达式返回false,循环直接终止

等价写法

你也可以把它写成更直观的形式,效果完全一样:

while (sr.ReadLine() is not null line)
{
    output += line + "\n";
}

为什么用这个写法?

相比原代码,它避免了把赋值操作嵌在条件判断里的写法——这种写法很容易不小心把!=写成==,导致逻辑bug,新写法的可读性和安全性都更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 14:30:58