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

如何将Unity项目中C#版本从9.0升级至11.0?

如何在Unity项目中设置C# 11.0以使用required关键字

问题背景

你尝试在代码中使用C# 11.0的required关键字,却收到版本要求报错。你的代码如下:

using Microsoft.Build.Framework;
using System.Collections.Generic;

public class BackendClient
{
    public required string url { get; set; }
    public string appId;
    public string deviceId;
 
    public BackendClient(string url, string appId, string deviceId)
    {
        this.url = url;
        this.appId = appId;
        this.deviceId = deviceId;
    }
 
    public List<Category> getCategories()
    {
        return null;
    }
}

当前环境:

  • Visual Studio 17.7.2
  • .NET Framework 4.8.09032
  • Unity项目中Assembly-CSharp的C#版本默认被设为9.0:
<PropertyGroup>
  <LangVersion>9.0</LangVersion>
</PropertyGroup>

你曾手动修改为preview或直接指定版本,但启动Unity后设置会自动恢复为9.0。

解决方法

直接修改.csproj文件无效,因为Unity会根据自身项目设置重新生成这些文件。需要通过Unity编辑器的设置来更改C#版本:

  1. 打开Unity编辑器,点击顶部菜单 Edit > Project Settings
  2. 在弹出的设置窗口中,选择Player选项卡,滚动到Other Settings面板
  3. 确认Scripting Runtime Version设置为.NET 4.x Equivalent(这是支持C#11的前提)
  4. 在Configuration区域找到C# Language Version,选择11.0
    • 若找不到该选项,说明你的Unity版本不支持C#11,需要升级到Unity 2022.3 LTS或更高版本(Unity从2022.3开始正式支持C#11)
  5. 保存设置,Unity会自动重新生成项目的.csproj文件,此时Visual Studio中的C#版本将保持为11.0

补充说明

  • .NET Framework 4.8本身支持C#11的大部分特性,但需要Unity的脚本编译链支持,所以必须确保Unity版本符合要求
  • 不要手动修改Unity生成的.csproj文件,任何修改都会被Unity的项目设置覆盖

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 01:37:17