Einzelnen Beitrag anzeigen

Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#2

AW: Metaklassen in Delphi, wie geht das mit C# [generics]?

  Alt 30. Aug 2011, 10:51
Metaclasses sind ja eigentlich nix weiter als Factories, die außerdem alle Class-Member als Instance-Member haben.

C#'s Philosophie ist ja alles so einfach wie möglich zu machen. Und Features, die sich genauso gut durch Libraries lösen lassen, werden nicht in die Sprache aufgenommen.

Für dein konkretes Beispiel gibt es allerdings eine Syntax:
Code:
public class MyList<T>
  where T: new(), MyListElement
{
  ...
  public T AddOneElement()
  {
    var item = new T();
    item.SomeMethodFromTMyListElement(); // Das behagt mir nicht
    Items.Add(item);
    return item;
  }
}
Man kann Typenparameter darauf einschränken, dass sie Klassen oder Structs sein müssen. Oder dass sie von einem bestimmten Typen ableiten.
Außerdem gibt es die Constraint "new()", was heißt, dass dein T einen öffentlichen Konstruktor ohne Parameter haben muss.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat