Zitat von
Khabarakh:
Parameterlose Konstruktoren gibt es bei Records (zurecht) nicht.
OK, aber die parameterlose Static-Function sollte dennoch gehn.
Aber wieso eigentlich immer "zurecht"?
Statt der TParams.GetDefault-Methode könnte man notfalls auch noch eine CreateParams-Funktion erstellen
Delphi-Quellcode:
type
TParams = record
class function Create: TParams; static;
function Default: TParams;
function paramA(i: Integer): TParams;
function paramB(i: Integer): TParams;
function ParamList: TParams;
private
paramAValue: Integer;
paramBValue: Integer;
end;
function CreateParams: TParams;
function CreateParams: TParams;
begin
Result.Default;
end;
class function TParams.Create: TParams;
begin
Result.Default;
end;
function TParams.Default: TParams;
begin
Finalize(Self);
FillChar(@Self, SizeOf(Self), 0);
Result := Self;
end;
function TParams.paramA(i: Integer): TParams;
begin
paramAValue := i;
Result := Self;
end;
function TParams.paramB(i: Integer): TParams;
begin
paramBValue := i;
Result := Self;
end;
function TParams.ParamList: TParams;
begin
Result := Self;
end;