Task
是一个存在于泛型和非泛型形式的类的例子。泛型形式扩展了非泛型形式。
public class Task
{
}
public class Task<T> : Task
{
}
假设我正在实现类似的东西。通常,不同的类被放在不同的文件中,但由于它们具有相同的名称,这种情况不可能。
那么,在这种情况下应该遵循什么样的约定呢?是将两个类保留在同一个文件中,还是将通用类放在另一个文件中并使用不同的名称?
Task
是一个存在于泛型和非泛型形式的类的例子。泛型形式扩展了非泛型形式。
public class Task
{
}
public class Task<T> : Task
{
}
假设我正在实现类似的东西。通常,不同的类被放在不同的文件中,但由于它们具有相同的名称,这种情况不可能。
那么,在这种情况下应该遵循什么样的约定呢?是将两个类保留在同一个文件中,还是将通用类放在另一个文件中并使用不同的名称?
Task<TResult>
放在与Task
无关的文件中:非泛型类位于文件Task.cs
中,而泛型类位于文件Future.cs
中。同样,Expression
和Expression<TResult>
位于不同的文件中(Expression.cs
和LambdaExpression.cs
)。看起来,这些类在文件中的放置逻辑是它们属于的其他类的逻辑归属。我采用的惯例(并在我的工作场所鼓励)是将通用参数添加到文件名中。因此,例如,我们会为非泛型版本使用 Task.cs
,而为泛型版本使用 Task(T).cs
。这样做的原因主要是因为我们非常严格地执行每个文件一个类的规则。
Task(T).cs
吗? - Gigi