J'aimerais pouvoir créer différentes structures avec une précision variable. Par exemple:Existe-t-il des interfaces partagées par des types de valeur représentant des nombres?
public struct Point<T> where T : INumber
{
public T X;
public T Y;
public static Point<T> operator +(Point<T> p1, Point<T> p2)
{
return new Point<T>
{
X = p1.X+p2.X,
Y = p1.Y+p2.Y
};
}
}
Je sais offres Microsoft avec en créant deux structures - Point
(pour les entiers) et PointF
(pour les nombres à virgule flottante), mais si vous avez besoin d'un point à base d'octets, ou double précision, alors vous devrez copier beaucoup d'ancien code et simplement changer les types de valeur.
Voir cette question SO: http://stackoverflow.com/questions/4322383/why-dont-number-types-not-share-a-common-interface/4322432#4322432 –
Vous ne saviez pas que vous pouviez surcharger les opérateurs en C# ... Agréable! + rep'ing :) – Machinarius