2009-08-12 129 views
6

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

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

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

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

例子:

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

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

+1

去找史蒂夫麦康奈尔的“Code Complete 2” - > http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/ref=sr_1_1?ie=UTF8&s=books&qid=1250101785&sr = 8-1 – Zack 2009-08-12 18:30:14

回答

13

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

+0

+1把我的手指说出来! – curtisk 2009-08-12 18:01:03

+0

我不打算使用StyleCop,但链接正好满足我需要的内容。谢谢! – Lazlo 2009-08-12 18:01:33

5

来自Microsoft的完整指南可在Class Design Guidelines中找到。这是旧的,但我还没有发现任何更新的MSDN,我相信它仍然是标准设置推荐

+0

查看我的帖子以获取更新指南的链接。 :) – 2009-08-12 18:00:08

+0

这里是更新的链接:http://msdn.microsoft.com/en-us/library/ms229042.aspx – 2009-08-12 18:01:27

+0

感谢您的回答,但280Z28的答案更符合我的问题。 :)不过,+1 – Lazlo 2009-08-12 18:02:04

0

我想看看下面的Coding Practices.

它几乎涵盖了我,我读......包括前缀UI元素最C#代码看到的一切。我个人并没有遵循这封信,但它给你一个关于一般标准的好主意,以及什么是好的/坏的做法。

0

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

每当发现无效或偏好不佳的代码部分时,它不仅会发出警告,而且会指向您在FxCop站点上的帮助资源。

0

MSDN:Naming Guidelines

我倾向于遵循.NET Framework是如何编码的,所以我的代码是使用.NET框架是一致的。

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

2

我在去年写了these guidelines,使用了来自MSFT和其他广泛接受的指南的各种指南。你可能想要查看它,它也有其他的东西,比如设置项目和其他东西,但是所有的命名准则也在其中。

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

+1

作为一个从未有人给过他任何指导或约定的独立开发者,我觉得这非常翔实。我很好奇你将如何处理'var'和Form的代码页。我看到“源文件布局”一节,我想知道WinForm代码页是否也适用。此外,在“控件和组件”下,您声明应该使用'ux'来防止以后编码更改。那么,那么,使用var的同样心态呢?感谢文档! – 2009-08-12 18:31:57

+0

是的,形式也是如此。新版本将包含更多的好东西。我通常会将区域控制事件与方法分开。通常我的表单从来没有方法,因为我总是创建一个独立于UI层的服务层。 我倾向于更快地完成最新版本,所以我会在发布后回到这里。留意一下。 ;) 感谢您的评论! – 2009-08-12 18:38:27

+0

@Refracted Paladin:我们使用“ux”前缀来防止稍后在开发中更改UI控件。例如如果您将文本框更改为组合框,则匈牙利语惯例使用方法,如果您是命名约定的标尺,则可以将名称从“txtMyTextBox” - >“cmbMyComboBox”更改。另外,“m_”和“ux”在Intellisense中为组变量和控件添加前缀。 – Zack 2009-08-12 18:42:56

相关问题