What are the naming conventions in C#?
There is the All-In-One Code Framework Coding Standards from Microsoft which contains a complete set of rules and guidelines. (also used to be available here)
This document describes the coding style guideline for native C++ and .NET (C# and VB.NET) programming used by the Microsoft All-In-One Code Framework project team.
The two main Capitalizations are called camelCase and PascalCase.
The basic rules (with lots of variations) are
- Types use PascalCase
- properties and methods always use PascalCase
- public members (fields, consts) use PascalCase
- local variables use camelCase
- parameters use camelCase
And although the documentation states that "Internal and private fields are not covered by guidelines" there are some clear conventions:
- private fields use camelCase
- private fields that back a property prefix a
_
C# prefers PascalCasing for classes, properties, and methods.
As far as I can tell so far, there are these conventions:
public Type SomeMethod()
<-- yesprivate Type SomeMethod()
<-- correct, no underscorepublic static Type SomeMethod()
<-- correctprivate static Type _SomeMethod()
<-- this seems odd to me too. underscore should not be therepublic Type someProperty
<-- no, a public property should be PascalCased (SomeProperty)public static Type SomeProperty
- and then going back to pascal casing for static..
If you are using Visual Studio, or XNA Game Studio (which I think is a fork of Visual Studio), I highly recommend springing for a ReSharper license (from jetbrains software). They will tell you, in your code editor, how to conform to common C# conventions.
Addition:
You should use camelCasing for private fields and method arguments. For private fields, I usually prepend them _withAnUnderscore.
There are a whole lot of naming conventions advocated by Microsoft for .Net programming. You can read about these here.
As a rule of thumb, use PascalCase for public property, method and type name.
For parameters and local variables, use camelCase.
For private fields, choose one: some use camelCase, other prefix _camelCase with an _.
A commonly seen convention is also to name constants with ALLCAPS.