AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi (D2009) Generics mit Array als Feldvariable: Interner Fehler
Thema durchsuchen
Ansicht
Themen-Optionen

(D2009) Generics mit Array als Feldvariable: Interner Fehler

Offene Frage von "stimpinski"
Ein Thema von stimpinski · begonnen am 7. Apr 2010 · letzter Beitrag vom 15. Apr 2010
 
stimpinski

Registriert seit: 5. Mai 2009
3 Beiträge
 
#4

Re: (D2009) Generics mit Array als Feldvariable: Interner Fe

  Alt 15. Apr 2010, 16:29
So, nach einigem experimentieren mit den Delphi2009 Generics bin ich zu folgendem Ergebnis gekommen:

1. Wenn du Arrays als Feldvariablen einer generischen Klasse verwenden möchtest, definiere sie vorher als eigenen Typen.

Delphi-Quellcode:
type

  TMyIntegerArray = Array of Integer;

  TMyGenericClass<T> = class(TObject)
  private
    FIntegerArray: TMyIntegerArray;
  public
    constructor Create;
    // etc
  end;
2. Wenn du eine generische Klasse von einer generischen Klasse verwenden möchtest, dann baue einen Wrapper um die innere generische Klasse.

Delphi-Quellcode:
type

  TMyDummieClass = class(TObject)
    constructor Create;
    // etc
  end;

  TMyGenericClass<T> = class(TOjbect)
    constructor Create;
    // etc
  end;

  // wrapper klasse für TMyGenericClass<TMyDummieClass>
  TMyGenericClassWrapper = class(TObject)
  private
    FMyGenericClass: TMyGenericClass<TMyDummieClass>;
  public
    constructor Create; // ruft auf FMyGenericClass := TMyGenericClass<TMyDummieClass>.Create;
    // etc
  end;

  TMyOtherGenericClass<T> = class(TObject)
    constructor Create;
    // etc
  end;
Statt
Delphi-Quellcode:
var
  LLocalVariable: TMyOtherGenericClass<TMyGenericClass<TMyDummieClass>>;
verwendet man einfach
Delphi-Quellcode:
var
  LLocalVariable: TMyOtherGenericClass<TMyGenericClassWrapper>;
Das ist zwar wenig elegant, weil ich für jeden Typ den ich in die innere generische Klasse stecke einen neuen Wrapper schreiben muss, andererseits erhalte ich jetzt keine kryptischen Fehlermeldungen vom Compiler mehr.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz