使用C#命名准则

时间:2009-09-27 07:12:35

标签: c# .net naming-conventions hungarian-notation

我有这堂课:

class DoSomething
{
    private int timesDone;
    ...
}

命名变量'timesDone'的正确方法是什么?

有时我看到名为 m_timesDone 。它是否正确?我在哪里可以找到有关命名指南的信息?

谢谢!

8 个答案:

答案 0 :(得分:5)

没有普遍的正确方法。选择你喜欢的命名惯例并坚持下去。

答案 1 :(得分:4)

根据MS标准,您的代码没问题。如果您拥有高级IDE,则前缀为m_并不是必需的。但是,可以使用 _ 这样的短前缀来利用自动完成功能来快速整理班级成员。

我建议您获取“Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries”一书的副本以了解有关MS标准的更多信息

答案 2 :(得分:4)

绝对不要使用m_timesDone。

简单地说“private int timesDone”。

您可以通过阅读一些好的书籍来学习如何命名变量,例如Code Complete。

答案 3 :(得分:3)

许多人在那里做到了。然后,您将其引用为

this.timesDone = someInt

但是,我不喜欢这个,因为我不喜欢输入'this'以避免与方法参数名冲突。只要它具有可读性和一致性,您就可以了。

答案 4 :(得分:3)

使用m_作为成员字段前缀的惯例来自C ++的早期,Hungarian notation很受欢迎。它不是C#约定,并且由于大多数C#代码是使用最近的Visual Studio编写的,因此它会增加视觉噪声而没有任何相应的优势,因为无论如何您都可以轻松地查看变量的范围。不要使用m_。

已经进入C#的匈牙利符号的唯一例子是使用I表达接口类名的做法,例如IDisposable。

答案 5 :(得分:2)

您可以直接在MSDN网站上找到一些信息: http://msdn.microsoft.com/en-us/library/ms229002.aspx

答案 6 :(得分:1)

你会发现唯一的一致意见是 应该是TimesDown,但它应该以小写字母开头。
在较旧的出版物(MS,MSDN)中,不鼓励使用前导下划线。之后它又回来了,特别是对于属性的后备域:_timesDown。

答案 7 :(得分:0)

通常采用的策略是:

Class & 方法 Pascal套管

e.g。

public class Program
 {
 }

例如

public void DoSomething() { } 

对于变量 Camel Casing ,例如timesDown

本地变量:

   aTimesDown

全局变量:

myTimesDown

我希望这可以帮到你:)