Benutzer mit den meisten Antworten
Überladung des + Operators in einer generischen Klasse

Frage
-
Hallo,
Ich möchte eine Überladung des "+" Operators erstellen, und das in einer generischen Klasse. Die Klasse besitzt außerdem einen Indexer, der auf ein Array vom jeweiligen Typ zugreift.
Hier die Methode von + :
public Name<T> operator +(Name<T> obj1, Name<T> obj2)
{
int MinSize = Math.Min(obj1.Max, obj2.Max);
Name<T> Added = new Name<T>(MinSize);
for (int i = 0; i < MinSize; i++)
{
Added[i] = obj1[i] + obj2[i];
}
return Added;
}Die Fehlermeldung lautet: "Der Operator "+" kann nicht auf Operanden vom Typ "T" und "T" angewendet werden."
Hoffe jemand kann mir helfen,
Mit freundlichen Grüßen
Nino
- Bearbeitet Nintec Sonntag, 22. Juli 2012 11:24
Antworten
-
Hallo Nino,
arithmetische Operatoren kann man bei Generika so ohne weiteres nicht überschreiben.
Siehe dazu: http://stackoverflow.com/questions/147646/solution-for-overloaded-operator-constraint-in-net-genericsund den Link von Marc Gravell: http://www.yoda.arachsys.com/csharp/miscutil/usage/genericoperators.html
Gruß Elmar
- Als Antwort markiert Nintec Sonntag, 22. Juli 2012 17:20
Alle Antworten
-
Hallo,
Die Methode muss statisch sein. ;-)
Viele Grüße Holger M. Rößler
- Bearbeitet Holger M. Rößler Sonntag, 22. Juli 2012 12:26
-
Hallo Nino,
arithmetische Operatoren kann man bei Generika so ohne weiteres nicht überschreiben.
Siehe dazu: http://stackoverflow.com/questions/147646/solution-for-overloaded-operator-constraint-in-net-genericsund den Link von Marc Gravell: http://www.yoda.arachsys.com/csharp/miscutil/usage/genericoperators.html
Gruß Elmar
- Als Antwort markiert Nintec Sonntag, 22. Juli 2012 17:20