5

我继承了一些我刚刚开始挖掘的源代码,我发现以前的所有者已经将该using指令用作 a 的别名List<T>,但我以前从未见过这种特定方法。

namespace MyNamespace
{
    using pType1 = List<type1>;
    using pType2 = List<List<type1>>;

     // classes here
}

这两个元素在代码中被大量使用,并且也是代码中几个关键方法的返回类型。我得到了他试图通过使用简单的名称而不是一遍又一遍地重复来完成的List<type1>任务List<List<type1>>。我正在争论是否创建一个真正的类型来替换 using 语句,但在我花时间之前,我想知道是否有任何优点/缺点来保持当前的实现。

4

2 回答 2

3

通常,如果数据结构代表应用程序域模型中的某个实体,它应该有自己的类型;它使代码更加清晰易懂。另一方面,如果您只需要一个List<List<string>>用于中间数据处理的类型,那么为它制作一个合适的类型并没有真正的好处。

在您的情况下,由于原始开发人员遇到了为该类型创建别名的麻烦,因此它会被大量使用是合乎逻辑的,这指向“代表一个实体”场景。如果是这样,一定要继续为结构创建一个新类型(可能比裸列表更合适,通常是根据接口而不是具体类定义的东西,但这取决于你在那里实际建模的内容)。

于 2011-12-08T17:24:28.510 回答
1

如果该构造像您所说的那样大量使用,我肯定会用(该)真实类型替换它(明确写出 List 或创建一个新类型)。如果有人碰巧更改了其中一个类型声明,例如

using pType1 = List<type2WhichType1InheritsFrom>;

因为(s)他认为基础版本在不查看所有使用它的地方的情况下做得更好,可能会有一些不需要的副作用。

于 2011-12-08T17:22:38.783 回答