I often get asked about the Naming Conventions I adhere to when writing code (C#, naturally).
It made sense to share these in a blog post so I can refer to it in future.
Some of these guidelines (well, one, the underscore on private fields) are negotiable as a matter of style. However, the public stuff is non-negotiable. For this is how .NET APIs should be and failure to adhere to this reflects badly on your code. No, no, no.
I thought a good way to present this would be an example class demonstrating the rules and some comments to help, so here goes:
using System;
// Namespaces are PascalCased
namespace TheJoyOfCode.NamingConventions
{
// Class names are PascalCased
public class ExampleClass
{
// All public fields, including constants are PascalCased
public static const string PiAsAString = "3.14";
// All private fields are camelCased with an underscore [1]
private readonly string _privateMember;
// All protected members are PascalCased
protected int ProtectedField = 12;
// All internal members are PascalCased
internal int InternalField = 13;
// All private methods are PascalCased
// *** NOTE - All parameters are camelCased
private double Multiply(double valueA, double valueB)
{
// local variables (scoped within a method) are camelCased (no underscore)
double result = valueA * valueB;
return result;
}
// All private Properties are PascalCased
// *** NOTE - Acronyms of 2 characters are UPPERCASED (e.g. UI, IO)
private string UIElementName { get; }
// All (public and private) properties are PascalCased
// *** NOTE - Acronyms longer than 2 characters are PascalCased (e.g. Html, Xml)
public int HtmlLength { get; set; }
// All public methods are PascalCased
// *** NOTE - All parameters are camelCased
// *** NOTE - Abbreviations are not treated as Acronyms (so _Id_entification is Id, not ID).
private void AlignObjectById(string id, Alignment alignment)
{
throw new NotImplementedException();
}
// Nested classes are PascalCased, even Private ones
private class NestedClass : IDisposable
{
public void Dispose()
{
throw new NotImplementedException();
}
}
}
// Enums are PascalCased and not plural (unless marked [Flags] in which case the name should be plural)
public enum Alignment
{
// Enum members are PascalCased
Top,
Bottom,
Left,
Right,
}
}
// [1] - Note the underscore isn't as recommended by StyleCop but since it applies only to private members, can be considered a matter of style and one that I personally use.
출처 : http://blogs.msdn.com/b/ukadc/archive/2009/11/05/net-naming-conventions.aspx
코드 난독화 2 (0) | 2011.06.15 |
---|---|
코드 난독화 하기1 (0) | 2011.06.15 |
Visual Studio 2010 and .NET Framework 4 Beta 2 (0) | 2010.02.22 |
Dotfuscator Community Edition (닷넷 어셈블리 난독화) (0) | 2010.01.20 |
프로젝트 템플릿 만들기 (0) | 2009.07.16 |