【发布时间】:2026-01-11 01:05:02
【问题描述】:
为什么变量被声明为TStrings并创建为TStringList?
例如:var sl 被声明为 TStrings 但创建为 TStringList
var
sl : TStrings;
begin
sl := TStringList.Create;
// add string values...
sl.Add( 'Delphi' );
sl.Add( '2.01' );
// get string value using its index
// sl.Strings( 0 ) will return
// 'Delphi'
MessageDlg(
sl.Strings[ 0 ],
mtInformation, [mbOk], 0 );
sl.Free;
end;
【问题讨论】:
-
我的首要原因:TStrings 涉及更少的输入 :)
-
@mjn 为什么不一路添加
TSL = TStringList到包含在每个单元中的包含文件...... ;-) -
很好的问题!!我相信这个问题的根源在于VCL源代码通常使用根祖先类型作为变量,例如
TControl。编码人员(包括我)倾向于根植每个变量,但这没有意义。感谢您让我思考。 -
我认为始终使用尽可能少的特定类型并不是一个坏主意。这可以防止不必要的依赖。那么,如果它没有害处,为什么不坚持这条规则,即使在这种情况下也这样做呢?
-
@smasher 在相关代码中可以避免哪些依赖关系。我可以在函数体中看到 TStringList。
标签: delphi tstringlist