Hallo,
weder noch
Richtig ist:
C#-Quelltext
1: 2: 3: 4:
| public static ValueSet<T> operator +(ValueSet<T> obj, T zahl) { } |
Und bei
C#-Quelltext
1:
| if (obj.values[i] == zahl) return false; |
gibst du ja einen boolschen Wert zurück (und das ergibt eben keinen Sinn, denn der Operator soll ja ein ValueSet<T> zurückgeben - also "return obj").
Du scheinst noch nicht verstanden zu haben, daß das 'T' einfach nur ein Platzhalter für einen beliebigen Datentypen ist, d.h. wenn du dann ValueSet<int> verwendest entspricht das 'T' dann einfach 'int'.
Und daher mußt du deine generische Klasse eben so schreiben, daß du anstatt eines konkreten Datentypen 'T' schreiben mußt (den Rest erledigt dann der Compiler

)
P.S. Zwei weitere Fehler hast du noch in deiner Methode - aber die findest du dann sicherlich alleine raus (bedenke, daß die Operator-Methode als 'static' deklariert ist!)