47得票2回答
如何为记录类定位属性?

当定义记录类时,我如何将属性定向到参数、字段或属性?例如,我想使用JsonIgnore,但它不能编译,因为它有一个属性用法限制到字段或属性:record Person(string FirstName, string LastName, [JsonIgnore] int Age);

31得票3回答
为什么在具有主构造函数的记录中需要显式的 `this` 构造函数初始化程序?

在 C# 9 中,我们可以创建位置记录(positional records),使它们获得一个构造函数,标准草案将其称为主要构造函数。我们也可以创建自定义构造函数,但如规范所述: 如果记录拥有主要构造函数,则任何用户定义的构造函数(“复制构造函数”除外)都必须具有显式的 this 构造函数初...

20得票6回答
C# 9.0记录 - 反射和泛型约束

关于新记录功能有两个问题: 如何使用反射识别记录?在这里查看[1],也许可以检测EqualityContract,但我不确定是否应该采用这种方式? 是否可能有一个通用的约束条件,即通用类型是记录?也就是说,如果可以使用约束指示类型参数T必须是记录类吗?

15得票2回答
使用C# 9.0记录来构建类似智能枚举/鉴别联合/总和类型的数据结构?

在C#中尝试使用record类型时,它似乎可以很好地用于构建类似于判别联合的数据结构,我只是想知道我是否遗漏了一些将来会后悔的问题。例如:abstract record CardType{ // Case types public record MaleCardType(int...

10得票2回答
C# 9.0新特性records - ToString未被继承

考虑: // the ratioale for Wrapper is that it has a Json serializer that // serialize through Field (not included in this example) record Wrapper&l...