Coding standards/de
From OpenSimulator
Contents |
Richtlinien
Wir befolgen standardmäßige C#-Codierungsrichtlinien,
sofern nicht anders angegeben: [1] [2].
Korrekturen an bestehenden Dateien zur Einhaltung dieser Standards sind willkommen.
Formatierung
- Wir setzen geschweifte Klammern auf separate Zeilen und verwenden 4 Leerzeichen.
- Tabulatoren selbst sollten Leerzeichen sein, keine echten harten Tabulatoren.
- Verwenden Sie string anstelle von String, wenn Sie auf den System.String-Typ verweisen.
Benennung
- Wir verwenden ganze Wörter, um Dinge zu benennen.
- Streben Sie eine assoziative Benennung an, damit die Logik ohne explizite Kommentare klar ist.
Klassen
Sofern die Klassen nicht sehr trivial sind, sollte es eine Klasse pro Datei geben.
public class SimpleExample { }
Methoden
Bei Methodennamen werden alle Wörter groß geschrieben (im Gegensatz zu Java, das CamelCase kulturell verwendet).
public class SimpleExample { public void ExampleMethod(int exampleAttribute) { string exampleVariable = "test value"; } }
Felder
Felder sollten immer initialisiert werden, wenn sie deklariert werden. Mitgliedsfelder beginnen mit m_ und werden in camelCase fortgesetzt:
public class SimpleExample { private long m_exampleMemberField = 0; private static double m_exampleStaticMemberField = 2; public void ExampleMethod(int exampleAttribute) { string exampleVariable = "test value"; } }
Warnungen
Bitte halten Sie die Code-Warnung frei und verwenden Sie #pragma nur, wenn es absolut notwendig ist. Zum Beispiel:
#pragma warning disable 0612 ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Script] = "_script.txt"; // Nicht sicher, ob wir das jemals sehen werden #pragma warning restore 0612
Logging
Jede Klasse sollte ihren eigenen Logger haben, der als privat deklariert und nicht vererbt wird:
public class SimpleExample { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); }
Verwendung von var und new()
Verwenden Sie var nur dann in einer Variablendeklaration, wenn der Typ der Variablen auf der rechten Seite eindeutig ist
var a = new List<string>(); //oder List<string> b = new(); // ok var c = mything(); // nicht ok. Wir können den Typ nicht sehen, ohne nach mythischen Details zu suchen.