【问题标题】:What are the C# "formatting" standards?什么是 C#“格式化”标准?
【发布时间】:2010-11-19 01:19:56
【问题描述】:

在 C#(.NET) 中,常规的“格式化”标准是什么?

例如,对于参数名称,到目前为止,我注意到没有前缀的 camelCase,对吗? 对于对象名称,camelCase 也没有前缀,对吧?

对于命名空间、类、函数和属性,单词的第一个字母大写并且没有前缀,这对吗(再次)?

“临时”对象是如何格式化的?

例子:

namespace TestNamespace
{
    class MyOwnCoolClass
    {
        MyOwnCoolClass(int length, BinaryWriter writer)
        {
            BinaryWriter tempbw = new BinaryWriter(length);
            return tempbw;
        }
    }
}

(注意:这段代码是无效的,我知道,只是为了演示格式化)。 谢谢!

【问题讨论】:

标签: c# .net formatting standards


【解决方案1】:

Microsoft 的完整指南可在Class Design Guidelines 中找到。很老了,但是我在 MSDN 上还没有找到任何更新的东西,我相信它仍然是标准集推荐

【讨论】:

  • 感谢您的回答,但 280Z28 的回答更符合我的问题。 :) 不过,+1
【解决方案2】:

如果您使用StyleCop,您将获得与Microsoft .NET Design Guidelines for Developing Class Libraries 的良好一致性。 StyleCop 还强制执行一些额外的操作,例如间距、文件中项目的排序以及非公共代码元素的命名。

【讨论】:

  • 我不打算使用 StyleCop,但该链接正好满足我的需要。谢谢!
【解决方案3】:

我会看看下面的Coding Practices.

它几乎涵盖了我在阅读的大多数 C# 代码中看到的所有内容……包括前缀 UI 元素。我个人并没有严格遵守它,但它可以让您很好地了解一般标准以及什么是好的/坏的做法。

【讨论】:

    【解决方案4】:

    有对 Microsoft 编码标准的引用。 Visual Studio 2005 和 2008 有一个内置的代码分析引擎,它将指导您完成这些编码标准,并为您指明一些最佳实践。右键单击您的项目,然后单击“在项目上运行代码分析”。

    每当发现无效或不太喜欢的代码部分时,它不仅会警告您,还会将您指向 FxCop 网站上的帮助资源。

    【讨论】:

      【解决方案5】:

      MSDN:Naming Guidelines

      我倾向于遵循 .NET 框架的编码方式,因此我的代码与 .NET 框架一致。

      我唯一的个人偏好是类变量的命名,我在每个变量之前使用前缀“m_”,例如private int m_count

      【讨论】:

        【解决方案6】:

        您可以将StyleCopFxCop(或VS2008 Pro 的内置代码分析)用于工具和Framework Design Guidelines 的组合。

        【讨论】:

          【解决方案7】:

          去年我使用 MSFT 的各种指南和其他广泛接受的指南写了these guidelines。您可能想检查一下,它还有其他的东西,比如设置项目等等,但所有的命名指南也都在里面。

          编辑:我注意到这是一个旧版本,我有一个新版本,我已经写了一段时间了,它包含很多好东西,但还没有完成。不过,我会在这篇文章发布时更新它。

          【讨论】:

          • 作为一个从未有人给他任何指导或约定的独立开发者,我觉得这非常有用。我很好奇您将如何处理var 和表单的代码页。我看到“源文件布局”部分,我想知道这是否也适用于 WinForm 代码页。此外,在“控件和组件”下,您声明应该使用ux 来防止以后更改编码。那么,使用 var 的心态是一样的吗?感谢您的文档!
          • 是的,表单也是如此。新版本将包含更多这样的好东西。我通常会将控制事件与方法分开。通常我的表单从来没有方法,因为我总是创建一个与 UI 层分开的服务层。我倾向于更快地完成最新版本,所以当它发布时我会在这里发布。留意。 ;) 顺便感谢您的精彩评论!
          • @Refracted Paladin:我们使用“ux”前缀来防止以后在开发中更改 UI 控件。例如匈牙利约定使用意味着如果您将文本框更改为组合框,则如果您是命名约定的坚持者,则可以将名称从“txtMyTextBox”->“cmbMyComboBox”更改。此外,“m_”和“ux”为 Intellisense 中的组变量和控件添加前缀。
          • 谢谢你们俩。 @DavidA:有时间框架的想法,所以我知道什么时候开始检查?月、周、日、年???
          • 新版本已完成并上传。您可以使用相同的链接下载它。我通常每隔几个月更新一次此文档,并进行重大更新
          猜你喜欢
          • 2015-07-26
          • 2010-09-19
          • 1970-01-01
          • 1970-01-01
          • 2015-12-02
          • 2016-04-19
          • 1970-01-01
          相关资源
          最近更新 更多