32 votes

À quoi sert le Tuple (T1) / Singleton en .net?

L'un des types de tuple dans .net 4 est un tuple à élément unique . Je me demande juste quel est le but de cette structure?

La seule utilisation que j'ai vue est lors de l'utilisation dans le tuple 8+ car elle peut être affectée à TRest, où cela a du sens. Est-ce que c'est ça? Ou y a-t-il un autre but?

18voto

LBushkin Points 60611

Vous devriez demander à la BCL les concepteurs pour en être certain, mais je pense que depuis il y a un 1-n-uplets dans le monde réel, l' .NET framework auteurs ont voulu fournir l'équivalent de la symétrie dans leur mise en œuvre.

Tuples sont de la .NET de la mise en œuvre de ce que vous devriez considérer le concept mathématique d'un tuple.

Maintenant, puisque vous me demandez de programmation utilise pour Tuple<T>,, je voudrais également répondre qu'il y a des .NET languages (comme F#) qui pourraient utiliser Tuple<> pour la représentation des choses comme valeurs de retour des fonctions. Depuis une fonction F# pourrait certainement revenir de 1-n-uplet de ce fait - il ajoute de la symétrie et de la cohérence du comportement et de se sentir de la langue.

Votre exemple avec 8+ n-uplets est aussi probablement légitime, que l' Rest de la propriété pourrait être une de 1-n-uplet pour représenter le "dépassement".

7voto

Ben McCormack Points 10669

Les Tuples en œuvre automatiquement IStructuralComparable et IStructuralEquatable, entre autres choses. Cela permet aux tuples d'être comparés et classés à droite de la boîte. De Bill McCarthy article en décembre 2009, édition de Visual Studio Magazine, "les Types et les Tuples dans .NET 4":

Bien que les tuples peuvent look simple et sobre, ils ne fournissent typage fort et important de la comparaison et de l'égalité et de la fonctionnalité. Les Tuples sont utiles à travers la méthode, la classe ou la même machine les frontières.

En mettant votre type de données dans un tuple, même d'un seul élément, vous avez la garantie d'immuabilité, equatability, et de comparabilité. Pour les tuples contenant qu'un seul élément, le principal avantage de l'utilisation d'un n-uplet va être l'immuabilité: une fois le tuple est créé, c'est les données ne peuvent jamais changer pour la durée de vie de la n-uplet.

4voto

Oded Points 271275

Tous les types de tuple implémentent ITuple , donc je suppose que lorsque vous voulez avoir un type de retour qui est un ITuple , vous devez avoir l'option d'avoir une seule valeur, comme vous le suggérez.

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