0

List<String>返回 a或返回 a之间的性能有什么区别StringList吗?其中 StringList 将被定义为

class StringList : List<String> { }

这也适用于任何其他定义的列表,例如IntListorObjectListControlListor MyCustomClassList,所有这些都以类似的方式定义。

我看到的唯一区别是代码的可读性,编译器会优化任何性能差异吗?

其次,有没有更好的方法来定义 StringList 或者这种方法是唯一的方法?

4

3 回答 3

5

你打算扩展的功能List<string>,即添加方法,覆盖方法?如果没有,那么添加这个新类就没有意义了。

而且我不确定可读性 - 如果有人看到List<string>他确定这是字符串的通用列表并且他知道会发生什么。但是他不能确定StringList类是做什么的,他将不得不深入研究源代码,这意味着在源代码不可用时使用 Reflector 或此类工具。

于 2013-05-13T11:42:49.107 回答
3

在您的情况下,性能应该没有更大的差异。

更好的定义StringList方法是

using StringList = System.Collections.Generic.List<string>;

因为它更清楚地表明您不想对该定义进行补充。class如果你想扩展某些东西,使用继承是一个好方法。

但是,我仍然建议使用List<string>,因为每个 C# 程序员都知道它是什么。对每种可能的数据类型进行自定义定义会使代码变得不必要难以阅读。

于 2013-05-13T11:42:35.940 回答
0

只有当您尝试实现某个自定义类的通用列表以添加新功能并覆盖某些常见功能时,它才会有意义。但我建议实施IList<>not the List<>. 创建实现字符串列表的新类没有意义。

于 2013-05-13T11:48:19.180 回答