Einzelnen Beitrag anzeigen

Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#13

Re: Von TObjectList<T> erben?

  Alt 17. Feb 2010, 13:04
Zitat von himitsu:
Das "Blöde" an der Generics-Unit ist, daß da irgendwer auf eine total bescheuerte Idee gekommen ist
und die generischen Klassen genauso benannt hat, wie die Normalen.
Tja, die alten Namen passen eben einfach perfekt, alternative will ich mir gar nicht vorstellen .
/add: Und Panthrax muss ich auch recht geben, ist imo eher eine Vereinfachung als potentielle Verwirrung.

Zitat von Uwe Raabe:
In diesem Fall handelt es sich aber nicht um klassische Vererbung, sondern um die Instanziierung(Typisierung?) eines generischen Typs.
Nö. Sobald ein class vorkommt, ist das ganz normale Vererbung. Innerhalb des class wird in der Tat ein generischer Typ instanziert, aber dafür braucht man keine Vererbung, es genügt ein Alias:
type TNonFoodList = TObjectList<TNonFood>; Solange wir aber nicht über TList<TDictionary<... reden, ist das aber ebenfalls unüblich, man sollte im Code einfach direkt TObjectList<TNonFood> verwenden.

Zitat von himitsu:
Es wäre praktisch so, als wenn man zwei Objektlisten im QuellCode "parallel" erstellt hätte.
Ich gehe stark davon aus, dass es wie beim .NET-Jitter gelöst wurde: Für jeden Value Type jeweils eine Kopie, für alle Reference Types (wahrscheinlich nur alle Klassentypen) eine Kopie zusammen.

Zitat von Uwe Raabe:
Das unterstreicht meine Aussage, das man keine Variablen vom Typ eines Generics deklarieren kann (bis auf die besagte Ausnahme).
Anders ausgedrückt: Um einen offenen generischen Typ zu verwenden, muss er geschlossen, also alle formalen Typparameter durch konkrete Typen oder Typparameter der umgegebenden Klasse/Methode ersetzt werden.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat