Каковы преимущества и обычное практическое применение использования Tuples в .NET 4.0? - PullRequest
3 голосов
/ 27 мая 2010

Я читал о Tuples, предоставленном с выходом новых функций .NET Framework, и мне все еще интересно, как это может быть полезно в реальном мире корпоративных приложений.

Можно ли дать мне краткое объяснение вместе с простым, но реальным примером кода?

Спасибо! =)

Ответы [ 4 ]

5 голосов
/ 27 мая 2010

Кортежи в настоящее время не так уж велики в C #, потому что для них нет четкого синтаксиса. Однако эта концепция очень распространена в функциональных языках, таких как F # (новинка в .NET 4.0).

Итак, если вы пишете часть своего приложения на F # или используете библиотеки, написанные на F #, вы можете столкнуться с ними. Если вы используете только C #, я бы сказал, что вам лучше использовать анонимные типы . Они позволяют вам называть различные свойства, тогда как они будут называться от Item1 до ItemX с использованием кортежей. Не очень описательный.

Конечно, если вы хотите вернуть несколько значений (с разными типами) из метода, использование анонимных типов не вариант, и в этом случае использование кортежей может быть хорошим решением, если вы делаете что-то быстрое и грязное .

4 голосов
/ 27 мая 2010

Лучше всего было бы легко возвращать несколько значений, поэтому производительность кодирования была бы решением Это также вполне читабельно.

т.е:

return new Tuple<int, string, char>(1, "some string", 10.00);

По сравнению с чем-то вроде

public class ReturnMany
{
   public int intValue { get; set; }
   public string strValue { get; set; }
   public decimal decValue { get; set; }
}

return new ReturnMany() { intValue = 1, strValue = "some string", decValue = 10.00 }
4 голосов
/ 27 мая 2010

Кортежи в .NET являются неизменяемыми, поэтому они также являются простым способом передачи множества значений по потокам. В настоящее время я использую кортежи с Retlang, и они отлично подходят для библиотек этого типа.

4 голосов
/ 27 мая 2010

Кортеж - это простой способ вернуть несколько значений из функции.

...