C#9.0记录ToString

问题描述

如果我看着spec,它说

记录中包含一个等效于以下声明的方法的综合方法:公共重写字符串ToString();

无论如何使用sharplab,正如我在VS16.8.0 Preview 2.1代码中看到的那样:

record Rec(string S1,string S2);

ToString不会自动生成。

我在做什么错了?

解决方法

根据Microsoft Announcing .NET 5.0 RC 1的博客文章,您至少需要.NET 5.0 RC 1才能使record.ToString()正常工作。

记录可能是C#9中最重要的新功能。它们提供了广泛的功能集(对于一种语言类型),其中一些功能要求RC1或更高版本(例如record.ToString())。

要使用.NET RC 1,您需要更新Visual Studio:

要使用.NET 5.0,您需要Visual Studio的最新预览版(包括Mac的Visual Studio)。

这可能意味着您需要2020年9月14日发布的Visual Studio 2019 version 16.8 Preview 3


编辑:就像注释中提到的Hans Passant一样,使用master分支应该可以解决SharpLab中的问题。这是working example。如果使用分支 C#9:记录(2020年6月7日),则记录的属性不包含在结果字符串中。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...