【问题标题】:Acceptable naming conventions for .NET applications [closed].NET 应用程序的可接受命名约定 [关闭]
【发布时间】:2011-08-24 14:12:43
【问题描述】:

我是一名老派程序员,拥有丰富的 C 和 C++ 背景。我从来不是微软的一员,我曾经使用 Turbo C 和 Borland C++。

我总是使用描述性变量名称,通常是相当长的名称和匈牙利符号。

我强迫自己摆脱匈牙利符号,但在我的命名中仍然有一些残留物。请告诉我以下是否被认为是好的命名。

    // Variables
    bool fResult;           // Boolen used for return value
    String strLastName;     // A persons last name 
    List<String> listNames; // A list of names
    int nIndex;             // An index

我注意到微软喜欢真正通用的名称,例如 e 和 obj。这对我来说感觉不对。

此外,对于类变量,我采用了名称的下划线前缀,例如 _strLastName。

【问题讨论】:

  • 您还没有解释您正在编程的环境。您正在编写开源代码吗?这段代码是否总是由您自己维护?什么是“可接受的”可能会有很大的不同。
  • 见仁见智。更好的是,您和您的团队同意始终保持的标准。
  • 这是一个内部的非开源应用程序,将由团队维护。我是最初的开发人员,但其他团队成员将开始使用它并维护它。

标签: naming convention


【解决方案1】:

我看到的大多数 c# 代码通常遵循以下约定:

成员变量:

private string _firstName;

属性:

public string FirstName {get;set;}

函数和方法参数:

public string WelcomeMessage(string firstName)

类:

public class Repository

界面:

public interface IRespository

函数中的局部变量:

var firstName = "Jahova";

然而,正如上面所指出的——这并不重要——只要每个人都同意并且你最终不会在 1 个代码库中得到 10 种不同的样式...

另外,值得一提的是,MS 使用匈牙利符号的指南:

不要使用匈牙利符号。

http://msdn.microsoft.com/en-us/library/ms229045.aspx

【讨论】:

  • 感谢您的回复。我想我想符合一套新的标准,而微软现在似乎是公认的标准。我从来没有用 Class 为我的课程添加后缀。 FxCop 也抱怨使用像 String 这样的词作为类后缀。我有一个它抱怨的变量条件字符串。我喜欢“字符串”,因为我有条件类,可以序列化为字符串,并希望清楚这是否是对条件类的引用的序列化字符串。
  • 啊,抱歉——你不应该用类作为后缀。讨论这些东西时类名的错误选择:)会改变
【解决方案2】:

说实话,编码约定对于每个人、团队或组织都是独一无二的。所以,如果你是一个人工作,那就找一些你觉得舒服的事情并坚持下去。

如果您在一个团队中工作,那么您和团队的其他成员应该就您使用的编码约定达成一致。

如果您在较大的组织中工作,那么很可能会有一些编码约定会强加给您。

【讨论】:

    猜你喜欢
    • 2010-09-10
    • 2010-10-15
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    • 2010-10-29
    • 1970-01-01
    相关资源
    最近更新 更多