.net 为每个元组对象添加描述?

vojdkbi0  于 2023-06-25  发布在  .NET
关注(0)|答案(3)|浏览(92)

我有一个元组:

var a = new Tuple<int, int, int>(1,2,3);

我的问题是:
有没有任何方法(通过/// remark或其他方式),为对象类型添加一个简短的描述?
前3个int的可能会让人困惑……
我怎么知道第一项是指“年龄”而不是指“手指数”?

oxalkeyp

oxalkeyp1#

不可以。Tuple类只打算在方法内部使用;如果你想公开数据,你应该定义一个classstruct,每个值都有属性。
但是,如果您想为值给予有意义的名称,则可以改用匿名类型。它们被 * 约束 *(不仅仅是意图)为仅在方法内部使用。

var a = new { Name = "ABC", Age = 33, NumberOfFingers = 10 };
int age = a.Age;

编辑:如果你确信你想从你的方法中返回一个元组,那么我的建议是在你的方法的返回值的文档中解释它的结构。

/// <summary>
/// Retrieves personal information about the person.
/// </summary>
/// <returns>
/// A tuple containing the following information:
/// <list type="bullet">
/// <item><see cref="Tuple{T1,T2,T3}.Item1"/>: The name of the person.</item>
/// <item><see cref="Tuple{T1,T2,T3}.Item2"/>: The age of the person.</item>
/// <item><see cref="Tuple{T1,T2,T3}.Item3"/>: The number of fingers the person has.</item>
/// </list>
/// </returns>
public Tuple<string, int, int> GetPerson()
{
    return Tuple.Create("ABC", 33, 10);
}

如果您希望它显示在IntelliSense中,请将您的解释放在<summary>中。

pcww981p

pcww981p2#

不,这是不可能的-您不能记录传入的参数。
这是使用Tuple的一个很大的缺点-值的含义相当不透明。
我建议写一个有意义的名字的类/结构,并使用它。

mqkwyuun

mqkwyuun3#

我知道这是一个老帖子,但我认为值得一提的是,如果任何不熟悉tuple的人偶然发现它,但你现在可以命名tuple的字段(见here)。
我不确定如何在方法的<summary><remarks>标记中引用它们,但如果将名称添加到方法的返回类型中,代码的其他部分也可以使用它们!

相关问题