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

C# 9.0报错‘inferred delegate type不可用’的原因及解决方法

问题解析与解决

错误含义

这个错误表示你使用的C# 9.0版本不支持var推断委托类型的特性。用var直接声明lambda表达式变量(比如var sayHello = () => $"Hello, {name}";)是C# 10才引入的语法糖,更早版本的编译器无法自动推断该lambda对应的委托类型。

解决方法

有两种可行的解决方式:

1. 显式指定委托类型

放弃var,直接声明变量为匹配的委托类型。示例中lambda无参数且返回字符串,对应Func<string>:

var name = "Kyle";
Func<string> sayHello = () => $"Hello, {name}";
Console.WriteLine(sayHello());

如果lambda有参数或返回其他类型,需对应匹配委托类型:比如带单个字符串参数的用Func<string, string>,无返回值的用Action。

2. 升级项目的C#版本到10.0及以上

若你的开发环境支持(如Visual Studio 2022及以上),可修改项目设置升级C#版本:

  • 在Visual Studio中右键项目 → 属性 → 生成 → 高级 → 语言版本,选择"C# 10.0"或更高版本。
  • 或直接编辑项目文件(.csproj),添加/修改<LangVersion>节点:
<PropertyGroup>
  <LangVersion>10.0</LangVersion>
</PropertyGroup>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 13:20:13