Heya

Zitat von
r2c2:
Ich habs überlebt...

*gg* Schön zu hören

Zitat von
r2c2:

Hm... interessant. Eigentlich sollte das doch gehen, indem du einfach kein Interface vorher angibtst. Damit sollten sich doch beide Interfaces zufrieden geben. Versteh also momentan noch nicht warums nicht geht. Wenn ich mich erst mal mit Generics befasst hab(hab momentan noch .NET 1.1 am Laufen), wird sich das wahrscheinlich klären...
Ne, geht nicht

Beide Interfaces wollen eine Methode mit gleicher Signatur, aber anderem Rückgabewert.

Zitat von
r2c2:
Stört aber doch nicht. Nimm einfach den anderen Parameter und lass auch null zu. Und die Felder kann man auch im Konstruktor initialisieren... Bin gerade dabei Sets für .NET 1.1 zu implementieren(wenn du willst, kann ichs, wenns fertig is, ja mal anhängen) und nehm dafür structs. Hab bisher damit keine Probleme.
Ja, das ginge natürlich auch. Aber so ists mit irgendwie lieber ^^

Zitat von
r2c2:
Wärend dessen is mir noch n bisschen was aufgefallen:
- sollte als Enumerator nicht
Code:
public IEnumerator GetEnumerator()
{
return inner.GetEnumerator();
}
reichen? Oder geht das wegen der Generics nicht?
Hm, jetzt wo du es sagst

Seh ich mir mal an..

Zitat von
r2c2:
- Wie wärs mit m implicit operator; bei mir(ohne generics) funktioniert das nicht, da ich object als implicit-Parameter nehmen müsste und set ja von object abgeleitet ist; bei deiner Version könnts aber klappen
Von woher wölltest du denn konvertieren? Bin grad bisschen verwirrt

Zitat von
r2c2:
- Leider kann man "in" nicht überladen. Hab dafür also einfach "%" genommen. Sieht zwar nicht so toll aus, funktioniert aber...
Dafür hab ich .Contains(T), aber ein eigener Operator dafür wäre natürlich auch toll. Habs aber gelassen, weil ich persönlich .Contains(T) besser lesbar finde als T % Set, weil % ja normalerweise was ganz anderes ist

Zitat von
r2c2:
Ah und nochwas is mir aufgefallen:
Code:
public static Set<T> operator +(Set<T> left, Set<T> right)
{
Set<T> result = new Set<T>();
result.inner.AddRange(left.inner);
result.Include(right);
return result;
}
Warum benutzt du einmal AddRange und einmal Include. Du könntest du für beides Include verwenden...
He, stimmt ja^^ Is mir garnicht aufgefallen