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.