Einzelnen Beitrag anzeigen

DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#1

T-Array einer Funktion mit TArray<string>-Parameter übergeben

  Alt 1. Okt 2018, 20:06
Ich habe eine Funktion die ein TArray<string> entgegennimmt
Implode(const Delimiter: string; const Values: TArray<string>): string; In einer anderen Funktion würde ich der o.g. Funktion gerne T übergeben
Delphi-Quellcode:
procedure WriteArray<T>(const Section: string; const Ident: string; Delimiter: string; Value: T);
begin
 if (TypeInfo(T) = TypeInfo(string)) then
  WriteString(Section, Ident, Implode(Delimiter, TArray<string>(Value)))
 else if (TypeInfo(T) = TypeInfo(Integer)) then
  WriteString(Section, Ident, Implode(Delimiter, TArray<Integer>(Value)));
WriteArray rufe ich so auf
WriteArray<string>('section', 'ident', mein-array); Wie schaffe ich es, Implode das zu übergeben, was es haben möchte?
T kann Integer oder String sein.
Ich könnte Implide ja auch generisch machen. Aber dann würde der Code in Implode nicht mehr funktionieren eben wegen desselben Problems wie oben
Result := string.Join(Delimiter, Values); Ich glaube ich habs. Statt T muss für Value TArray<T> im Kopf deklariert sein.

Geändert von DieDolly ( 1. Okt 2018 um 20:47 Uhr)
  Mit Zitat antworten Zitat