我有一个元组:
var a = new Tuple<int, int, int>(1,2,3);
我的问题:
是否有任何方式(通过/// remark
或其他方式)向对象类型添加简短描述?
前3 int 可能令人困惑......
我怎么知道item1是指“年龄”而不是“手指数”?
答案 0 :(得分:10)
没有。 Tuple
类仅用于在方法内部使用;如果您打算公开提供数据,则应为每个值定义class
或struct
属性。
但是,如果要为值赋予有意义的名称,则可以使用匿名类型。这些约束(不仅仅是意图)只能在方法内部使用。
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>
。
答案 1 :(得分:4)
不,这是不可能的 - 您无法记录传入的参数。
这是使用Tuple
的一大缺点 - 值的含义相当不透明。
我建议使用有意义的名称编写一个类/结构,然后使用它。