是否可以在 .NET Framework 4.x 中使用带有 C# 9 Records 的库

Rok*_*Rok 3 .net c#-9.0

有没有办法用记录创建库,然后在旧的.NET Framework 4.x 应用程序中使用它?

Yai*_*adt 5

是的,虽然这不受官方支持。

首先,您必须将 LangVersion 设置为 9,您可以通过手动编辑 csproj 来实现,例如

<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <TargetFramework>net472</TargetFramework>
        <LangVersion>9.0</LangVersion>
    </PropertyGroup>

</Project>

Run Code Online (Sandbox Code Playgroud)

然后,您必须将以下文件添加到您的库中:

namespace System.Runtime.CompilerServices { internal class IsExternalInit { } }
Run Code Online (Sandbox Code Playgroud)

之后,您应该能够像往常一样在您的图书馆中声明和使用记录。