为每个Tuple对象添加描述?

时间:2012-01-22 15:08:07

标签: c# .net .net-4.0

我有一个元组:

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

我的问题:

是否有任何方式(通过/// remark或其他方式)向对象类型添加简短描述?

前3 int 可能令人困惑......

我怎么知道item1是指“年龄”而不是“手指数”?

enter image description here

2 个答案:

答案 0 :(得分:10)

没有。 Tuple类仅用于在方法内部使用;如果您打算公开提供数据,则应为每个值定义classstruct属性。

但是,如果要为值赋予有意义的名称,则可以使用匿名类型。这些约束(不仅仅是意图)只能在方法内部使用。

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

Anonymous type

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

/// <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>

答案 1 :(得分:4)

不,这是不可能的 - 您无法记录传入的参数。

这是使用Tuple的一大缺点 - 值的含义相当不透明。

我建议使用有意义的名称编写一个类/结构,然后使用它。