|
|
1
1
它是一个TStringList,因此您还应该将其声明为TStringList(第一个示例)。其他一切都可能使您或稍后阅读代码的其他人感到困惑。 |
|
|
2
0
我的投票是第二种形式——其想法是TStrings定义了一个契约/接口,最好是为它们编写代码。 |
|
3
0
我想说,这取决于您是否期望将TStringList更改为其他实现tstring的东西。如果您不希望它发生变化,那么使用TStringList并访问TStringList中单独存在的特殊功能(估计情况并非如此)。如果您预期它可能会更改,请将其声明为tstring并坚持使用“安全”方法。
|
|
|
4
0
TStringList比TStrings(一个抽象类)有更多的属性和方法。除非使用强制转换,否则使用TStrings变量禁止使用这些成员。但在我看来,这让事情变得更糟。 可以在函数参数中使用tstring。
或者作为一种财产。但是,如果局部变量和字段被标记为其真实类型,则它们的用途更广泛。 |
|
|
5
0
这取决于。。。 在Java中,我经常看到使用可用的最高抽象级别进行声明的建议,尽管它通常适用于接口。 例如:
等
当然,如果使用特定于实现的方法,则必须在声明中更加具体。 另一个优点是:当一个方法需要一个集合参数时,只要它只需要使用泛型方法,它就可以处理更广泛的输入范围。 |
|
|
danny · 如何使数组或映射返回变量(而不是其值) 2 年前 |
|
|
Sher Meen · 我需要列出一个循环中临时变量中存储的多个值 3 年前 |
|
|
Noah Hellyer · 如何删除python中7个字符长的所有零 3 年前 |
|
|
Gabbisen · 从列表编辑变量(不能使用字典) 3 年前 |
|
|
cred · 为什么我请求的变量在从另一个类调用时显示为0.0? 3 年前 |
|
|
lorny · R循环中的自动递增变量名 7 年前 |