具有相同名称的泛型和非泛型类型的约定

Gig*_*igi 5 c# convention generics

Task是一个以泛型和非泛型形式存在的类的例子。泛型形式扩展了非泛型形式。

public class Task
{

}

public class Task<T> : Task
{

}
Run Code Online (Sandbox Code Playgroud)

假设我自己正在实施类似的东西。通常,约定是将不同的类放在不同的文件中。由于它们具有相同的名称,因此在这里是不可能的。

这种场景的约定是什么?将两个类放在同一个文件中,还是将通用类放在不同的文件中,但名称不同?

das*_*ght 5

虽然微软没有公布处理这种情况的标准方法,但他们放在Task<TResult>了一个不同的文件中,名称与以下无关Task:非泛型类在文件中Task.cs,而通用类在文件中Future.cs

同样,ExpressionExpression<TResult>位于不同的文件(Expression.csLambdaExpression.cs)中。

似乎在文件中放置类背后的逻辑是该类与它在逻辑上属于的其他类一起使用。