List并定义了StringList

本文关键字:定义 StringList String List | 更新日期: 2023-09-27 18:13:13

返回List<String>和返回StringList在性能上有什么区别吗?其中StringList定义为

class StringList : List<String> { }

这也适用于任何其他已定义的列表,如IntListObjectListControlListMyCustomClassList,它们都以类似的方式定义。

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

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

List<String>并定义了StringList

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

我不确定可读性-如果有人看到List<string>,他肯定这是字符串的通用列表,他知道该期待什么。但是他不能确定StringList类做什么,他将不得不潜入源代码,这意味着使用反射器或这样的工具时,源代码不可用。

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

一个更好的定义StringList的方法是像
using StringList = System.Collections.Generic.List<string>;

,因为它更清楚地表明您不想对该定义进行添加。创建class/使用继承是一个很好的方法,如果你想扩展一些东西。

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

只有当您尝试为某些自定义类实现泛型列表以添加新功能和覆盖一些常见特性时,它才有意义。但我建议实施IList<>而不是List<>。创建一个实现List of String的新类是没有意义的。