3

我有这堂课:

class DoSomething
{
    private int timesDone;
    ...
}

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

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

谢谢!

4

8 回答 8

5

没有普遍的正确方法。选择您喜欢的命名约定并坚持下去。

于 2009-09-27T07:15:08.643 回答
4

根据 MS 标准,您的代码是可以的。当您拥有高级 IDE 时,实际上并不需要前缀为 m_。然而,像_这样的短前缀可以用来利用自动完成功能来快速整理类成员。

我建议您获取“框架设计指南:可重用 .NET 库的约定、惯用语和模式”一书的副本,以了解有关 MS 标准的更多信息

于 2009-09-27T07:19:36.590 回答
4

绝对不要使用 m_timesDone。

简单地说“private int timesDone”。

您可以通过阅读一些好书(例如 Code Complete)来了解如何命名变量。

于 2009-09-27T08:09:00.320 回答
3

很多人都按照你的方式去做。然后,您将其引用为

this.timesDone = someInt

但是,我不喜欢这样,因为我不喜欢键入“this”以避免与方法参数名称发生冲突。只要它可读且一致,您就可以了。

于 2009-09-27T07:16:02.420 回答
3

使用 m_ 前缀成员字段的约定来自 C++ 的早期,当时匈牙利符号很流行。这不是 C# 约定,并且由于大多数 C# 代码是使用最近的 Visual Studio 编写的,因此它会增加视觉噪音而没有任何相应的优势,因为无论如何您都可以轻松地看到变量的范围。不要使用 m_。

匈牙利表示法在 C# 中出现的唯一例子是在接口类名称前加上 I 的做法,例如 IDisposable。

于 2009-09-27T08:21:39.760 回答
2

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

于 2009-09-27T07:14:45.667 回答
1

您会发现的唯一一致点是它不应该TimesDown,而是应该以小写字母开头。
在较早的出版物(MS、MSDN)中,不鼓励使用前导下划线。后来它又回来了,特别是对于属性的支持字段:_timesDown。

于 2009-09-27T08:42:22.367 回答
0

通常采用的策略是:

对于方法Pascal 套管

例如

public class Program
 {
 }

例如

public void DoSomething() { } 

对于变量骆驼套管,例如 timesDown

局部变量:

   aTimesDown

全局变量:

myTimesDown

我希望这可以帮助你:)

于 2009-09-27T08:55:46.743 回答