С добавлением класса Tuple в .net 4, я пытался решить, использовать ли его в моем проекте как плохой выбор или нет. То, как я это вижу, Tuple может быть ярлыком для записи класса результата (я уверен, что есть и другие виды использования).
Итак, это:
public class ResultType
{
public string StringValue { get; set; }
public int IntValue { get; set; }
}
public ResultType GetAClassedValue()
{
//..Do Some Stuff
ResultType result = new ResultType { StringValue = "A String", IntValue = 2 };
return result;
}
Это эквивалентно этому:
public Tuple<string, int> GetATupledValue()
{
//...Do Some stuff
Tuple<string, int> result = new Tuple<string, int>("A String", 2);
return result;
}
Итак, оставляя в стороне возможность того, что мне не хватает точки Tuples, является примером с Tuple плохим выбором дизайна? Для меня это кажется менее беспорядочным, но не как самодокументирующимся и чистым. Это означает, что с типом ResultType
, очень ясно, что каждая часть класса означает, но у вас есть дополнительный код для поддержки. С помощью Tuple<string, int>
вам нужно будет найти и выяснить, что представляет каждый Item
, но вы пишете и поддерживаете меньше кода.
Любой опыт, который у вас был с этим выбором, будет с благодарностью.