私の同僚と私は、関数で変数を宣言する方法について話し合ってきました。
TStrings という名前のクラス (説明のために Delphi を使用) があり、少なくとも 1 つの抽象メソッドと、明らかに抽象メソッドを実装する TStringList という子孫クラスがあるとします。 TStringList 型の関数変数をどのように宣言しますか?
2 つの例を次に示します。どちらがより良いプラクティスと見なされますか?その理由は?
procedure AddElements;
var
aList: TStringList;
begin
aList := TStringList.Create;
try
aList.Add('Apple');
aList.Add('Pear');
finally
aList.free;
end;
end;
procedure AddElementsII;
var
aList: TStrings;
begin
aList := TStringList.Create;
try
aList.Add('Apple');
aList.Add('Pear');
finally
aList.free;
end;
end;