gpt4 book ai didi

c# - 我们可以在 C# 8.0 中使用记录吗?

转载 作者:行者123 更新时间:2023-12-04 04:28:14 25 4
gpt4 key购买 nike

我有一个使用 .NET Standard 2.1 和 .NET core 3.1 的项目 - 所以 C# 版本是 8.0
根据我发现的几篇文章(例如 onetwo ),应该可以定义一个 record使用以下语法键入:

public class MyRecord(string Input1, int Input2);
但是我得到了很多编译错误,因为这种定义类的语法显然是不正确的。
这些文章是否具有误导性?
是使用记录升级到 C# 9.0 进而升级到 .NET 5.0 的唯一方法吗?

最佳答案

I have a project using .NET Standard 2.1 and .NET core 3.1 - so the C# version is 8.0


不正确。默认的 C# 版本是 8.0,但您可以使用您喜欢的任何语言版本(只要您有正确的构建工具和构建 SDK),只需更改语言版本即可。最简单的方法是在 csproj 中:
<PropertyGroup>
<LangVersion>9.0</LangVersion>
</PropertyGroup>
有一些警告:
  • 一些功能需要额外的类型定义,这些定义在早期的框架中会丢失,但可以手动添加或通过额外的 nuget 包引用添加;对于记录,这可能需要IsExternalInit ,PMF 向您展示如何定义,here
  • 某些功能需要运行时功能,不能工作在较早的框架上,例如新的默认接口(interface)实现特性
  • won't get any support from Microsoft - 如果它有效,那就太好了;如果没有;嗯

  • Is the only way to use records to upgrade to C# 9.0, and therefore .NET 5.0?


    不;您需要 .NET 5 构建 SDK,但您仍然可以针对 .NET Core 3.1 等。

    关于c# - 我们可以在 C# 8.0 中使用记录吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67687078/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com