124 votes

Quoi et quand utiliser Tuple?

Puisse certains expliquer s'il vous plaît ce qu'est un tuple et comment vous l'utiliseriez dans un scénario du monde réel. Je voudrais savoir comment cela peut enrichir mon expérience de codage?

127voto

Adil Points 80031

Cet article msdn , l'explique très bien, avec des exemples, "Un n-uplet est une structure de données qui a un certain nombre et la séquence des éléments".

Les Tuples sont couramment utilisés dans les quatre façons:

  1. Pour représenter un ensemble unique de données. Par exemple, un n-uplet peut représenter un enregistrement de base de données, et ses composants peuvent représenter divers champs de l'enregistrement.

  2. Pour faciliter l'accès aux, et la manipulation d'un ensemble de données.

  3. Pour retourner plusieurs valeurs à partir d'une méthode sans utiliser les paramètres de sortie (en C#) ou ByRef paramètres (en Visual Basic).

  4. Pour passer plusieurs valeurs à une méthode par le biais d'un seul paramètre. Pour exemple, l' Thread.Start(Object) méthode a un seul paramètre vous permet de fournir une valeur à la méthode que le thread s'exécute à les temps de démarrage. Si vous fournissez un Tuple<T1, T2, T3> objet en tant que méthode argument, vous pouvez fournir le fil de la routine de démarrage avec trois les éléments de données.

77voto

Mark Byers Points 318575

Un n-uplet vous permet de combiner plusieurs valeurs éventuellement de types différents dans un seul objet, sans avoir à créer une classe personnalisée. Cela peut être utile si vous voulez écrire une méthode que, par exemple, renvoie trois valeurs, mais vous ne voulez pas créer une nouvelle classe.

Habituellement, si vous devez créer une classe comme cela vous permet de donner un nom explicite à chaque propriété. Le Code qui utilise de manière intensive les tuples va vite devenir illisible car les propriétés sont appelés Item1, Item2, Item3, etc..

39voto

Kaido Points 1305

La différence entre un tuple et une classe est qu'un tuple n'a pas de nom de propriété. Ce n’est presque jamais une bonne chose, et je n’utiliserais un tuple que lorsque les arguments n’auraient aucun sens, comme dans une formule mathématique abstraite, par exemple. un calcul abstrait sur 5,6,7 dimensions pourrait prendre un tuple pour les coordonnées.

25voto

Azhar Kiani Points 80

C'est la chose la plus importante à savoir sur le type Tuple. Tuple est une classe, pas une structure. Il sera donc alloué sur le tas géré. Chaque instance de classe allouée ajoute au fardeau de la récupération de place.

Remarque: les propriétés Item1, Item2, et plus encore, n'ont pas de setters. Vous ne pouvez pas les assigner. Le tuple est immuable une fois créé en mémoire.

20voto

linquize Points 5418

Les classes de tuples permettent aux développeurs d'être «rapides et paresseux» en ne définissant pas une classe spécifique pour un usage spécifique.

Les noms de propriété sont Item1, Item2, Item3 ..., ce qui peut ne pas être significatif dans certains cas ou sans documentation.

Les classes de tuples ont des paramètres génériques fortement typés. Les utilisateurs des classes Tuple peuvent néanmoins déduire du type des paramètres génériques.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X