Je connais plusieurs structures Point
dans .NET: System.Drawing.Point
, System.Windows.Point
, Sys.UI.Point
, mais toutes se trouvent dans des bibliothèques d'interface utilisateur de haut niveau (GDI +, WPF, AJAX). J'ai besoin d'une structure Point
pour les calculs dans ma bibliothèque de classes que je ne veux pas lier à une technologie d'interface utilisateur spécifique. Existe-t-il une structure Point
indépendante de l'interface utilisateur dans .NET? Ou je devrai le créer moi-même? C'est simple, je sais, mais cela ressemble à réinventer la roue.
Réponses
Trop de publicités?À ma connaissance, il n'y en a pas, mais comme vous l'avez dit, ce n'est pas quelque chose de difficile à mettre en œuvre vous-même, je vous suggère donc de le faire.
Vous pourriez être tenté d'utiliser la classe Tuple
comme d'autres l'ont suggéré. Bien qu'il puisse faire le travail, ce n'est pas quelque chose que vous voudrez réutiliser encore et encore. De plus, vous pouvez rencontrer des problèmes de comparaison, selon les spécificités de votre application.
Réinventer la roue. Cela fonctionnera plus facilement! Vraiment, si c'est juste une petite structure, pourquoi dépendre de gros assemblages, en tirant beaucoup d'autres choses? Surtout sur les périphériques de contrainte comme les téléphones ... Mais faites attention à la façon d'utiliser correctement les classes et de structurer si vous voulez les meilleures performances.
C'est une assez bonne lecture et je sens que vous voulez la lire très chèrement: Frank Savage sur les performances du CLR .
Si vous ne voulez pas créer votre propre Point
classe, vous pourriez envisager d'utiliser l' Tuple
classe MSDN lien. Vous pouvez passer le long d'une paire de coordonnées quel que soit le type que vous voulez à votre bibliothèque de classe au lieu de forcer un utilisateur à instancier une nouvelle classe.
Si vous souhaitez fournir plusieurs méthodes d'aide à la consommation de votre bibliothèque, cependant, je voudrais créer votre propre classe. Les Tuples sont grands pour des moyens plus rapides pour passer autour de la data.