为ValueTuple中的命名元素添加XML文档注释。

10

使用 C# 7 中的 ValueTuple,现在可以编写返回或消耗复合对象的方法和属性而不需要显式声明类型。但是,如果未提供文档,这些命名元组可能会造成困惑。

因为文档库的主要和最方便的方式是使用 XML 文档,所以有没有一种使用 XML 文档来提供命名元组中变量描述的方法呢?

我知道显而易见的解决方案是声明一个类型并相应地记录其文档。但是,如果由于某些“原因”无法这样做,那么是否可以在 ValueTuple 中使用 XML 记录数据成员?

NB:ValueTuple 出现之前,已经有类似的问题被问及了。(参考链接)


您正在尝试将ValueTuple用作记录。元组(值或经典)字段没有特定的名称,您看到的字段名称是编译器魔法。没有类型可以指定XML文档。元组表示复杂的返回,而不是组合对象。 - Panagiotis Kanavos
1
@PanagiotisKanavos,谢谢您重复我已经知道的一切。根据您的评论,人们可以得出结论,元组只适用于内部使用。然而,在特定情况下,元组是最适合完成工作的(例如TryCast()Dictionary.TryGetValue())。我的问题是关于如何记录元组,在这些情况下,使用元组比预定义或自己的类型更为方便。 - Alex Essilfie
你已经理解的含义是,你不能将文档注释应用于特定的元组实例化。就像你不能将它们应用于 List<int>List<string> 一样。在 C# 中甚至不可能为元组指定类型别名,因此没有构造可以应用该文档。 - Panagiotis Kanavos
情况在 F# 中基本上是一样的,自 v1 以来就有元组。即使在那里,元组也从未意味着返回复合对象,这就是为什么您无法命名字段或定义特定的元组类型的原因。至少您可以指定别名,但实际类型仍然是一个无名元组。在 F# 中,类似值的复合对象由记录表示。不幸的是,记录在 C# 中尚不可用。 - Panagiotis Kanavos
1个回答

11

C#没有为记录元组中的命名元素提供特殊的语法,您需要使用普通的<returns><param>元素,并用文字解释每个命名元素包含的内容。

虽然有一个提案要向语言中添加此功能


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接