2012-01-22 32 views
3

我有一个元组:将描述添加到每个元组对象?

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

我的问题:

有什么办法(由/// remark或别的东西),以一个简短的描述添加到对象类型?

第3 INT的可以混淆....

我怎么能知道物品1是指的“年龄”,而不是“数手指”?

enter image description here

+0

你的代码不会编译。第四个参数是你正在传递的int产品 –

+0

@HarisHasan固定。谢谢。 –

+0

切换到F#并使用记录? ;) – TrueWill

回答

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); 
} 

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

+0

@dougles Ituples还可以用作函数的返回类型 - 所以我不需要在中间创建一个类。我可以写一个函数:'public tuple myFunc(){}' –

+1

它们是一个常规类型,就像任何其他类型一样,所以它们可以是返回值。然而,无论你是否应该将它们用于返回值,都是一个完全不同的主题。如果该方法是公共方法,则最好使用显式类。 – SWeko

+0

@douglas我知道这些匿名类型。然而,我不能使用VAR作为函数的返回类型(只有动态),我的主要目标是有一个对象作为函数的返回类型。谢谢:) –

4

不,这是不可能的 - 你不能记录传入的参数。

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

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