小智 41
在查找了其他人用于泛型类文件名的约定之后,才发现这个问题.
最近我一直在使用ClassName[T].cs
.我非常喜欢这个惯例,我认为它优于其他惯例,原因如下:
ClassNameOfT.cs
)更多地跳出来
.Dictionary[TKey,
TValue].cs
我从Boo的通用语法中借用了这个约定,尽管稍作修改(Boo使用ClassName[of T]
).
一些开发人员似乎有一个文件名的恐惧症,其中包含除了字母和下划线之外的任何内容,但是一旦你能够过去,这个约定似乎工作得非常好.
Mar*_*ade 36
在微软,他们使用ClassNameOfT.cs
.
Wim*_*ool 12
我看到这个话题已经在一年多前被放弃了,但我仍想分享我对这个大会的看法.
首先,具有相同名称但只有类型参数数量不同的多个类并不总是向后兼容的情况.当然,你不经常看到它,但.NET的新Action和Func类只是这样设计的,我现在正在实现类似的东西.
为了清楚和区分,我使用以下约定,该约定仅指定给定类型的泛型参数的数量:
这样,我的文件名保持简短而简单,同时仍然清楚地传递类名和不同数量的类型参数,代价是一个简单的额外点(根据我的经验,这是文件名中常见的事情.看起来比逗号和其他非alpanumeric字符要好得多,但这只是我猜的味道问题.设置类型参数的名称(或首字母缩写词)只会延长文件名,而在这个级别上,我对类型参数的实际名称并不感兴趣...
我个人不会使用重音符号:
Foo.cs
Foo`1.cs
Run Code Online (Sandbox Code Playgroud)
原因很简单,我害怕重口音。它不仅有一个可怕的名字,而且我不确定不同的文件系统、版本控制系统和 URL 将如何处理它。因此,我更愿意坚持使用常见的字母数字字符。
NameOfT.cs
根据在 GitHub 上的搜索,似乎在 ASP.NET Core 中使用。40 个结果。参考。
也用于 .NET Core 运行时。36 个结果。参考。
例子:
Foo.cs
FooOfT.cs
Run Code Online (Sandbox Code Playgroud)
有时我也会看到ClassName{T}.cs
,但通常会命名它ClassNameOfT.cs
(就像微软使用它之前提到的那样)
EntityFrameworkCore项目(也是微软的)使用ClassName`.cs