Coding standards
From OpenSimulator
(Difference between revisions)
m (Robot: Cosmetic changes) |
(→Source Repository (SVN)) |
||
| Line 5: | Line 5: | ||
We follow standard C# coding guidelines unless otherwise stated: [http://msdn.microsoft.com/en-us/library/czefa0ke.aspx]. Corrections to existing files to follow these standards are welcome. | We follow standard C# coding guidelines unless otherwise stated: [http://msdn.microsoft.com/en-us/library/czefa0ke.aspx]. Corrections to existing files to follow these standards are welcome. | ||
| − | |||
| − | |||
| − | |||
| − | |||
=== Formatting === | === Formatting === | ||
Revision as of 20:13, 9 November 2022
| Languages: |
|
Guidelines
We follow standard C# coding guidelines unless otherwise stated: [1]. Corrections to existing files to follow these standards are welcome.
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 the 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);
}