部分类文件的命名约定
Posted
技术标签:
【中文标题】部分类文件的命名约定【英文标题】:Naming Conventions For Partial Class Files 【发布时间】:2010-12-01 12:08:39 【问题描述】:我正在生成大部分 ASP.NET MVC 脚手架代码。所有生成的文件都是使用标准命名约定的部分类。例如,我的员工控制器文件名为 EmployeeController.cs。如果我希望使用自定义的非生成逻辑来扩展 EmployeeController,我创建了第二个名为 EmployeeControllerCustom.cs 的分部类文件。我将自定义和生成的逻辑分成两个不同的文件,这样下次生成 EmployeeController 时,我的自定义更改不会被覆盖。在文件名中添加“自定义”后缀对我来说似乎是合理的,但是我应该遵循更成熟的部分类文件命名约定吗?
【问题讨论】:
第 100 个喜欢 :)) 【参考方案1】:我使用.
分隔 - 例如EmployeeController.SomeSpecialBehaviour.cs
。我还通过“dependentUpon”或csproj中的任何内容将它链接到项目树中,以便它整齐地嵌套在文件下(在解决方案资源管理器中)。但是,您必须手动(编辑 csproj)或使用插件来执行此操作;例如:
<Compile Include="Subfolder/Program.cs" />
<Compile Include="Subfolder/Program.Foo.cs">
<DependentUpon>Program.cs</DependentUpon> <!-- Note that I do not reference the subfolder here -->
</Compile>
显示为:
子文件夹Program.cs
Program.Foo.cs
【讨论】:
DependentUpon 的建议非常酷,而且效果很好。感谢您的注意。如果我没看错,你不会简单地使用像“自定义”这样的标准后缀。您的后缀始终表达部分类文件功能的意图。另外,您使用 .与套管相对的分离?是否 .除了提高可读性之外,还能提供什么?谢谢。 正确 - 文件名表明该部分中代码的意图。因此,如果我正在实现一个奇异的接口(并保持代码分开),它可能是SomeType.ICustomTypeDescriptor.cs
。 .
(IMO) 将两件事分开:实际类型 (SomeType
) 和意图 ICustomTypeDescriptor
- 两者都已完全大小写;此外,它与SomeForm.Designer.cs
;-p 之类的东西完美匹配
@Marc Gravell:您是否知道任何提供为文件设置 DependentUpon 功能的 VS 扩展?
@Dyppl FileNesting 扩展可以做到这一点【参考方案2】:
更新/免责声明: 2018 年,有人编辑了 Marc Gravell♦ 的答案(上面接受的那个),在他的示例中包含了一个子文件夹。而如何处理有子文件夹的情况是this答案的重点。
如果没有该免责声明,您可能无法理解为什么存在这个答案以及为什么它有这么多选票。
为了补充 Marc Gravell♦ 的答案,我遇到了子文件夹中的文件和 DependentUpon
节点被忽略的情况。不足之处在于,在这种情况下,我的 xml 必须是:
<Compile Include="foo\bar.cs" />
<Compile Include="foo\bar.baz.cs">
<DependentUpon>bar.cs</DependentUpon> <!-- Note that I do not reference the subfolder here -->
</Compile>
我希望这对某人有帮助:)
【讨论】:
我也是。发生这种情况是因为我首先在数据库中启动项目,并且在创建模型时将它们放入模型图中。 VS2015 如果它对任何人都有影响。以上是关于部分类文件的命名约定的主要内容,如果未能解决你的问题,请参考以下文章
从 XMLNode 中选择是不是算作 SQL Server 中的 3 部分命名约定?
我应该在另一个命名空间中使用实体框架 DBContext 的部分类吗
如何使用 4 部分命名约定在“更新统计”作业中调用链接服务器?