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

为什么我在C#中使用record类型时会出现编译错误?

问题原因

报错是因为项目的.csproj配置没有指定正确的.NET目标框架和C#语言版本,C# 9的record关键字仅在C# 9及以上版本编译器支持,而C# 9默认绑定.NET 5及以上版本的目标框架。

解决步骤

  1. 修改项目配置文件
    打开TestProject目录下的TestProject.csproj,将文件内容调整为如下配置:
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net5.0</TargetFramework>
    <LangVersion>9.0</LangVersion>
  </PropertyGroup>
</Project>
  • <TargetFramework>指定为net5.0,确保项目使用.NET 5作为目标运行时
  • <LangVersion>显式指定C#语言版本为9.0,避免编译器默认使用低版本规则
  1. 重载OmniSharp服务
    在VS Code中按下快捷键Ctrl+Shift+P(Mac系统为Cmd+Shift+P),搜索并执行OmniSharp: Restart OmniSharp,等待C#扩展服务重启完成,语法报错会自动消失。

  2. 验证编译
    终端执行以下命令清理并重建项目,确认无编译报错:

dotnet clean
dotnet build

额外说明

后续创建.NET 5项目时,可以直接在创建命令中指定目标框架,避免手动修改配置:

dotnet new console -n TestProject -f net5.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 21:36:02