【问题标题】:Naming convention for partial classes file names? [duplicate]部分类文件名的命名约定? [复制]
【发布时间】:2012-01-30 13:31:16
【问题描述】:

如果我在 C# 中有部分类,文件名应该是什么?

该类名为partial class Logic,存在于两个或三个单独的文件中。

【问题讨论】:

  • 看起来一切都是徒劳的:/ Unity3D 无法处理部分类。它认为它们是两个独立的类。
  • 请注意,从 Unity 版本 4.1.5 开始,部分类似乎可以正常工作。

标签: c# naming-conventions partial-classes


【解决方案1】:

对于一个名为Logic 的类,我可能会选择Logic.something.cs(每个文件的“某事”不同)。这将与 Visual Studio 生成的部分类具有相同的样式(例如,表单的 .designer.cs 文件)

【讨论】:

  • 确实,这将区分 why 它是一个部分类,而“为什么”是命名约定的重要部分。部分类的经典示例是一部分是生成的,另一部分是手动的。所以Logic.generated.csLogic.cs 会相当直观。
  • 我喜欢这个想法,它让设计师很容易识别它!
【解决方案2】:

如果我生成代码(CodeSmith、MyGeneration、模板文件 (TT)),我只会使用部分类。微软在生成代理和数据集等方面做得很好。由于代码将在未来再次生成,它允许您分离出您想要包含但不想被覆盖的逻辑。

基于 Microsoft .NET 库标准http://10rem.net/articles/net-naming-conventions-and-programming-standards---best-practices的标准

Pascal 大小写,没有下划线或前导“C”或“cls”。

只有当 I 后面的字母不大写时,类才可以以“I”开头,否则它看起来像一个接口。

类不应与它们所在的命名空间同名。三个或更多字母的任何首字母缩写词都应该是帕斯卡大小写,而不是全部大写。尽量避免缩写,并尽量使用名词。原因:此约定与 .NET Framework 一致且易于阅读。

示例包括

  • 小部件
  • InstanceManager
  • XmlDocument
  • 主窗体
  • 文档表单
  • 标题控件
  • 客户列表数据集

这是有关命名约定的 MS 链接 http://msdn.microsoft.com/en-us/library/xzf533w0(v=vs.71).aspx

【讨论】:

    【解决方案3】:

    相信你可以随意选择文件名,只要将部分类放在同一个命名空间中即可!

    【讨论】:

      【解决方案4】:

      随便你,但是:

      • 不要使用部分类。如果您的班级那么大,最好以某种方式将其拆分为单独的班级。
      • 如果您坚持使用部分类,请在逻辑上拆分它们,这样您就可以拥有 Logic_Boolean.cs 等。

      【讨论】:

      • 作为对您的第一个论点的评论:我对课程还不是很擅长,所以为了保持井井有条,我想把它分成多个文件:)
      • @SimonVerbeke 很公平。但要记住一些事情。
      • 另一个原因是我正在使用 Unity3D,它的脚本要求您要执行的任何逻辑都放在一些预定的方法中。我想将它们分开:Update() 在一个文件中,OnGUI() 在另一个文件中,...这也是一个相当小的项目,其中包含许多不会返回其他任何地方的代码。
      • 部分课程占有一席之地。我使用它们将属性添加到我的实体框架生成的类中,因此我不必每次重新生成代码时都添加属性
      • 如果您的 API 类上有数百个方法怎么办?将类似的 API 方法拆分到自己的部分文件中以便于维护是否没有意义?你会怎么处理?希望不是多重继承
      猜你喜欢
      • 2010-12-01
      • 2011-08-08
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      • 2010-09-22
      • 2012-12-24
      • 1970-01-01
      • 2010-10-13
      相关资源
      最近更新 更多