适当的财产命名

时间:2011-03-02 21:29:33

标签: c# naming-conventions

在下面的人为例子中,这是命名我的“[Nn] ame”财产的正确方法吗?似乎.NET中的所有东西都是某种形式的Pascal案例。对于属性名称使用驼峰案件会被视为“糟糕的形式”吗?我读了MS guidelines on naming,他们说要用Pascal 案件。我真的很讨厌帕斯卡尔案,似乎就是这样。

一般商定的标准是什么(只是MS指南)还是无关紧要?如果我在这里使用骆驼箱,我会不好? TIA。

using System;

namespace Properties {
  class Program {
    static void Main() {

      var tester = new Tester();
      tester.Name = "jmquigley";
      tester.name = "another jmquigley";

      tester.Show();
    }
  }

  class Employee {
    public string Name { get; set; }
    public string name { get; set; }

    public void Show() {
      Console.WriteLine("Name = {0}", Name);
      Console.WriteLine("name = {0}", name);
    }
  }

  class Tester : Employee {
  }
}

注意:我在这里只使用了继承来查看在使用属性时如何处理属性(以查看是否所有内容都像字段一样)。

9 个答案:

答案 0 :(得分:3)

Microsoft指南在整个.Net Framework中使用,并受到StyleCop,FXCop和ReSharper等工具的支持。对于属性而不是字段使用驼峰大小写只会让大多数期望相反的C#开发人员感到困惑。

答案 1 :(得分:3)

  

普遍认同的是什么?   标准(它只是MS指南)

是的,普遍认可的标准是Microsoft指南。

  

或者没关系?

您的代码将在不遵循指南的情况下正常运行,但如果符合以下条件,我将遵循约定:

  • 您是团队成员
  • 您正在为雇主制作代码
  • 您正在制作开源代码
  • 您希望能够更轻松地在线阅读其他人的代码。
  • 您希望将来执行上述任何操作

答案 2 :(得分:1)

普遍认同的标准是Pascal案例。

有很多关于这个主题的指南:

  1. Microsoft Naming Guidlines
  2. IDesign C# Coding Standards
  3. Phillips C# Coding Standard
  4. C# Coding Style Guid
  5. CLS Specification
  6. 如果任何可能会让其他人看到您的代码,我建议您遵循Pascal案例指南。

答案 3 :(得分:0)

骆驼案一般是做事的标准方式。虽然如果您正在从事个人项目,或者由于其他原因可以选择自己设置标准,那么它可能并不那么重要。

答案 4 :(得分:0)

关于标准的奇妙之处在于有很多选择。

坦率地说,这并不重要。如果你有ReSharper,它的默认设置是PascalCase的Name属性,因为它是一个公共属性。

答案 5 :(得分:0)

当然你可以根据自己的意愿编写代码......只要确定如果你没有把所有内容都大写,那么每一个查看代码的.NET开发人员都会觉得它看起来很奇怪。

此外,您在C#中编程的任何工作都可能会要求您使用大写字母。

答案 6 :(得分:0)

Pascal案例在.NET世界占主导地位。

没有什么可以强迫你为自己的代码使用Pascal案例,但最终会混合使用pascal case(框架类型)和camel case(你自己的类型)。 不一致比不得不使用pascal case,imo。

更糟糕

此外,如果你是一个更大团队的一员,或者某个程序员可能需要在将来维护你的代码,那么这是符合现状的另一个好理由。

答案 7 :(得分:0)

标准方式是属性的Pascal Case和带字母下划线的驼峰大小写。

public string Name { get; }
private string _name;

答案 8 :(得分:0)

嗯,我在野外看到的方式是属性通常是Pascal的情况。 Pascal案例倾向于用于属性,方法和类。

关于惯例要记住的重要一点是,要放宽两个人之间的沟通障碍,而不是个人偏好。当我在最初编写Java之后第一次启动C#时,转移​​到Pascal案例的世界是非常奇怪的,但回头看,我应该早些采用这些约定。