Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我应该在接口上使用回勾约定吗?_C#_Generics_Type Parameter - Fatal编程技术网

C# 我应该在接口上使用回勾约定吗?

C# 我应该在接口上使用回勾约定吗?,c#,generics,type-parameter,C#,Generics,Type Parameter,当您有一个泛型类时,使用不同的类型参数重载,似乎普遍接受在文件名中使用反勾号语法: MyType.cs MyType`1.cs MyType`2.cs 对于接口来说也是这样吗?例如: IRepository.cs IRepository`2.cs 其中有这些对应的类型参数: public interface IRepository { 及 公共接口IRepository{ 是。 此约定适用于所有类型–类、接口和委托。文件约定只是个人/团队的首选项。如果您愿意,可以这样做 一、 就个人而言,

当您有一个泛型类时,使用不同的类型参数重载,似乎普遍接受在文件名中使用反勾号语法:

MyType.cs
MyType`1.cs
MyType`2.cs
对于接口来说也是这样吗?例如:

IRepository.cs
IRepository`2.cs
其中有这些对应的类型参数:

public interface IRepository {

公共接口IRepository{
是。

此约定适用于所有类型–类、接口和委托。

文件约定只是个人/团队的首选项。如果您愿意,可以这样做


一、 就个人而言,倾向于将它们放在同一个文件中。如果我要查找
IRepository
,我会假设任何和所有
IRepository
接口都是相似的,并且都代表一个“存储库”,所以我会在同一个地方查找它们。这样就不需要找出要搜索的
`2
等文件中的哪一个。对我来说,“IRepository`5.cs”与在一个文件中查找这些类型相比,它的可读性和可发现性并不强。

就我个人而言,我从未见过这样的情况,即使是在类中。我将所有这些类型都放在同一个文件中。这是唯一一种将多个类放在一个文件中的情况。@DanielHilgarth:这些是CLR类型名。你偶尔会看到它们一次。我不这么认为(应该是)一种公认的做法。生成的类型名包含反勾。@SLaks:我知道这些是CLR类型名。但我从未见过以它们命名的*.cs文件。普遍接受的做法是在哪里?我一直认为在.NET名称中它背后的部分原因是,不仅在大多数.NET语言的名称中不允许使用,而且没有人会这样做d在将来的任何语言中都会使用这样一种可怕的命名约定,因此不会有任何冲突。我从未见过它被用于文件名,对此我感到高兴。我不确定你是否正确理解了这个问题。他问他是否应该这样命名他的源文件。@DanielHilgarth:如果你为一个类命名,你应该为其他类命名如果你用的话,输入+1来保持它的一致性。听起来很合理。回答得很好。我想我更喜欢它们在同一个文件中。
public interface IRepository<T, in TId> {