Surcharge d’opérateurs
Elle permet de contrôler le comportement d’un objet face
à un opérateur. Imaginons que nous voudrions additionner deux objets d’une
classe. Il faudrait dire à l’opérateur « + » comment se
comporter pour effectuer cette addition. Illustrons ce propos par un exemple de
programme :
|
using System;
namespace surcharge
{
public
class Point
{
public
int x;
public
int y;
public
Point(int x,int
y)
{
this.x = x;
this.y
= y;
}
public static Point operator
+(Point a, Point b)
{
return new
Point(a.x + b.x, a.y + b.y);
}
}
class
Class1
{
[STAThread]
static void Main(string[]
args)
{
Point monpoint = new Point(1,2);
Point tonpoint = new Point(3,4);
Point
somme = monpoint + tonpoint;
Console.WriteLine("les points: monpoint({0},{1}), tonpoint({2},{3})",monpoint.x,monpoint.y,tonpoint.x,tonpoint.y);
Console.WriteLine("la somme est: somme({0},{1})",somme.x,somme.y);
Console.ReadLine();
}
}
}
|
Sortie console :

Le mot clef operator nous
permet de surcharger les opérateurs. Les
opérateurs du c# sont : +,-, !,~,++,--, true,false,*,/,%,&,|,^,<<,>>,==, !=,< ,>,<=,>=.
La méthode est déclarée static
, elle prend deux arguments de type Point (puisque nous voulons additionner les
objets de cette classe) et retourne une valeur de type Point également.
Sommaire
1. Les collections
2. les structures
3. les classes
4. Les propriétés
5. Les exceptions
6. Héritage et polymorphisme
7. Les interfaces
8. Surcharge d’opérateurs
9. La délégation
10. Les évènements
|
|
 |
Pour afficher ou poster un commentaire, cliquez sur ce lien : Forum-Microsoft
|
|