Coding standards
From OpenSimulator
(Difference between revisions)
m |
m |
||
Line 9: | Line 9: | ||
* We put curly brackets on separate lines and use 4 space tabs. | * We put curly brackets on separate lines and use 4 space tabs. | ||
* Tab themselves should be spaces, not actual hard tabs. | * Tab themselves should be spaces, not actual hard tabs. | ||
+ | * Use string instead of String when refering to System.String type. | ||
=== Naming === | === Naming === | ||
Line 35: | Line 36: | ||
public void ExampleMethod(int exampleAttribute) | public void ExampleMethod(int exampleAttribute) | ||
{ | { | ||
− | + | string exampleVariable="test value"; | |
} | } | ||
} | } | ||
Line 52: | Line 53: | ||
public void ExampleMethod(int exampleAttribute) | public void ExampleMethod(int exampleAttribute) | ||
{ | { | ||
− | + | string exampleVariable="test value"; | |
} | } | ||
} | } |
Revision as of 12:36, 11 January 2009
Contents |
Guidelines
When adding to existing code please respect the conventions already being used in the file you're editing.
We follow standard C# coding guidelines unless otherwise stated: [1]
Formatting
- We put curly brackets on separate lines and use 4 space tabs.
- Tab themselves should be spaces, not actual hard tabs.
- Use string instead of String when refering to System.String type.
Naming
- We use full words to name things.
- Aim for assosiative naming so that the logic is clear without explicit comments.
Classes
Unless the classes are very trivial, there should be one class per file.
public class SimpleExample { }
Methods
Method names have all their words capitalized (as opposed to Java, which culturally uses camelCase).
public class SimpleExample { public void ExampleMethod(int exampleAttribute) { string exampleVariable="test value"; } }
Fields
Fields should be always initialized when declared. Member fields start with m_ and continue in camelCase:
public class SimpleExample { private long m_exampleMemberField=0; private static double m_exampleStaticMemberField=2; public void ExampleMethod(int exampleAttribute) { string exampleVariable="test value"; } }
Warnings
- Please keep the code warning free, using #pragma only if absolutely necessary. For instance
#pragma warning disable 0612 ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Script] = "_script.txt"; // Not sure if we'll ever see this #pragma warning restore 0612
Logging
Each class should have their own logger which is declared private and is not inherited:
public class SimpleExample { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); }