我和我的一位同事一直在讨论如何在函数中声明变量。
假设你有一个名为 TStrings 的类(为了解释而使用 Delphi),它至少有一个抽象方法和一个名为 TStringList 的后代类,它显然实现了抽象方法,但它没有引入任何你需要的尚未实现的东西祖先,您将如何声明 TStringList 类型的函数变量?
这里有两个例子。哪个被认为是更好的做法,为什么?
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;