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

C#中`is {} service`模式是什么?求技术名称及文档指引

关于is {} service的技术名称及解释

这是C# 8.0及以后版本支持的模式匹配(Pattern Matching)中的非空模式+声明模式组合写法,也可以直接称它为非空模式匹配并赋值。

具体拆解:

  • {}是非空模式,作用是检查左侧表达式(这里是GetService<Iservice>()的返回值)不为null;
  • 紧跟的service是声明一个变量,当左侧表达式非空时,会把表达式的值直接赋值给这个变量,你可以在if的代码块里直接使用这个变量。

这种写法是把原本需要分开写的"变量声明+非空检查"合并成一行,比传统写法更简洁:
传统写法:

var service = context.RequestServices.GetService<Iservice>();
if (service != null)
{
    // 使用service
}

现在的写法直接把两步合并到if条件中,逻辑更紧凑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 01:19:52