C#中的命名约定 - 强调

时间:2012-03-20 06:08:38

标签: c# naming-conventions

我在an MVC3 Razor tutorialhttp://www.asp.net

看到了这一点
public ActionResult Index() {

    return View(_usrs._usrList);

}

这种用法不是很明显吗?我一直认为 [docs]

  

在C#中,我经常看到它仅在定义底层私有时使用   公共属性的成员变量。其他私有成员变量   不会有下划线。这种用法很大程度上取决于   尽管有自动属性的出现,路边。

或者这是我看到的新命名约定?对微软自己的教程中的用法非常好奇。

P.S:文章非常好。只是我倾向于遵循命名约定以提高可读性。

3 个答案:

答案 0 :(得分:33)

关于C#样式指南开发的一篇好文章在StyleCop

.NET的原始指南是永远不要使用下划线,除非它们是私有成员变量的一部分,然后仅作为前缀,例如_customerId。这可能是从MFC继承而来的,其中'm_'被用作成员变量的前缀。

目前的做法是根本不使用下划线。私有成员变量和具有相同名称的参数之间的消歧应该使用'this。'来完成。事实上,所有对私人成员的引用都应该以'this。'为前缀。

唯一使用下划线的地方似乎是在单元测试方法中使用了很多。我不是粉丝,但它可能使方法更具可读性,例如Throw_If_Customer_Is_Null(){...}

答案 1 :(得分:14)

指南在此汇总http://blogs.msdn.com/b/brada/archive/2005/01/26/361363.aspx,并包含使用“this”的规定。而不是下划线。但是我发现用“this。”来代我的代码会使代码变得更加冗长,混乱和难以理解。此外,它似乎不像下划线那么频繁,因此作为惯例,“_”似乎更为传统。

答案 2 :(得分:1)

在ASP中。 NET MVC 3下划线更常用。例如,您需要使用下划线命名所有部分视图,例如_MyPartialView 它可以在您的应用程序中轻松区分部分视图和视图。

无论如何,在这个例子中,我不喜欢唱下划线,因为没有必要使用它们。这没有错,因为使用实体的下划线列表编写是一种很好的做法。但我更愿意在没有它们的情况下写作 所以两种方式都是正确的,写下你感觉更舒服的方式。