J'utilise l'interface pour la plupart de mes trucs. Je ne peux pas trouver un moyen de créer un opérateur de surcharge + qui me permettrait de faire une addition sur des objets implémentant l'interface iPointComment écrire un opérateur de surcharge où les deux arguments sont interface
Code
interface IPoint
{
double X { get; set; }
double Y { get; set; }
}
class Point : IPoint
{
double X { get; set; }
double Y { get; set; }
//How and where do I create this operator/extension ???
public static IPoint operator + (IPoint a,IPoint b)
{
return Add(a,b);
}
public static IPoint Add(IPoint a,IPoint b)
{
return new Point { X = a.X + b.X, Y = a.Y + b.Y };
}
}
//Dumb use case :
public class Test
{
IPoint _currentLocation;
public Test(IPoint initialLocation)
{
_currentLocation = intialLocation
}
public MoveOf(IPoint movement)
{
_currentLocation = _currentLocation + intialLocation;
//Much cleaner/user-friendly than _currentLocation = Point.Add(_currentLocation,intialLocation);
}
}
Il n'y a aucun moyen de le faire en C# pour le moment. Nous avons envisagé d'ajouter cette fonctionnalité à C# 4.0 sous la forme d'opérateurs d'extension, mais ce n'était pas une fonction de priorité suffisamment élevée et elle a été coupée. Pardon! –
Merci, ça répond à ma question! –