
Obwohl es möglicherweise nicht den einen richtigen Weg gibt, um Ihren C#-Code zu formatieren, kann die Einigung auf einen konsistenten Stil innerhalb Ihres Teams zu einem saubereren, lesbareren und skalierbaren Code führen. Diese Seite bietet Tipps und wichtige Überlegungen, die Sie für Ihre Klassen, Methoden und Kommentare im Hinterkopf behalten sollten, wenn Sie Ihr eigenes Style-Guide erstellen.
Hinweis: Die hier geteilten Empfehlungen basieren auf denen von Microsoft. Die besten Regeln für Style-Guides sind die, die den Bedürfnissen Ihres Teams entsprechen.
Sie können ein Beispiel für einen Code-Stil-Leitfaden hier finden oder das vollständige E-Book herunterladen, Verwenden Sie einen C#-Stil-Leitfaden für sauberen und skalierbaren Spielcode (Unity 6. Auflage).
Neben der Benennung hilft die Formatierung, Rätselraten zu reduzieren und die Klarheit des Codes zu verbessern. Durch die Befolgung eines standardisierten Style-Guides werden Code-Reviews weniger darüber, wie der Code aussieht, und mehr darüber, was er tut.
Lassen Sie diese Beispielregeln weg, erweitern oder ändern Sie sie, um den Bedürfnissen Ihres Teams gerecht zu werden.
In allen Fällen sollten Sie berücksichtigen, wie Ihr Team jede Formatierungsregel umsetzen wird, und dann sicherstellen, dass alle sie einheitlich anwenden. Verweisen Sie auf den Stil Ihres Teams, um etwaige Diskrepanzen zu klären.
Berücksichtigen Sie bei der Einrichtung Ihres Unity-Entwicklungsstil-Leitfadens jeden der folgenden Vorschläge zur Codeformatierung.
Eine Eigenschaft bietet einen flexiblen Mechanismus zum Lesen, Schreiben oder Berechnen von Klassenwerten. Eigenschaften verhalten sich, als wären sie öffentliche Mitgliedsvariablen, sind aber tatsächlich spezielle Methoden, die Zugriffs-Methoden genannt werden. Jede Eigenschaft hat eine Get- und Set-Methode, um auf ein privates Feld zuzugreifen, das als Hinterfeld bezeichnet wird.
Auf diese Weise kapselt die Eigenschaft die Daten und verbirgt sie vor unerwünschten Änderungen durch den Benutzer oder externe Objekte. Der Getter und Setter haben jeweils ihren eigenen Zugriffsmodifikator, der es Ihrer Eigenschaft ermöglicht, lesbar-schreibbar, nur lesbar oder nur schreibbar zu sein.
Sie können die Zugriffs-Methoden auch verwenden, um die Daten zu validieren oder zu konvertieren (z. B. um zu überprüfen, ob die Daten Ihrem bevorzugten Format entsprechen oder einen Wert in eine bestimmte Einheit zu ändern).
Die Syntax für Eigenschaften kann variieren, daher sollte Ihr Stilrichtlinien definieren, wie sie formatiert werden. Verwenden Sie diese Tipps, um Eigenschaften in Ihrem Code konsistent zu halten.
Verwenden Sie ausdrucksbasierte Eigenschaften für einzeilige, nur lesbare Eigenschaften (=>): Dies gibt das private unterstützende Feld zurück.
Alles andere verwendet die ältere { get; set; } Syntax: Wenn Sie nur eine öffentliche Eigenschaft ohne Angabe eines Hinterfelds bereitstellen möchten, verwenden Sie die Auto-Implementierte Eigenschaft. Wenden Sie die ausdrucksbasierte Syntax für die Set- und Get-Zugriffsmodifikatoren an. Denken Sie daran, den Setter privat zu machen, wenn Sie keinen Schreibzugriff gewähren möchten. Richten Sie die schließende Klammer mit der öffnenden Klammer für mehrzeilige Codeblöcke aus.
Die Skriptserialisierung ist der automatische Prozess, Datenstrukturen oder Objektzustände in ein Format zu transformieren, das Unity speichern und später rekonstruieren kann. Aus Leistungsgründen behandelt Unity die Serialisierung anders als in anderen Programmierumgebungen.
Serialisierte Felder erscheinen im Inspektor, aber Sie können keine statischen, konstanten oder schreibgeschützten Felder serialisieren. Sie müssen entweder öffentlich sein oder mit dem [SerializeField] Attribut gekennzeichnet werden. Unity serialisiert nur bestimmte Feldtypen, daher sollten Sie sich auf die Dokumentationsseite für die vollständige Liste der Serialisierungsregeln beziehen.
Beachten Sie einige grundlegende Richtlinien, wenn Sie mit serialisierten Feldern arbeiten:
Referenzieren Sie diese serialisierbare Klasse von einer anderen Klasse. Die resultierenden Variablen erscheinen innerhalb von zusammenklappbaren Einheiten im Inspektor.

Es gibt zwei gängige Einrückungsstile in C#:
Es gibt auch Variationen dieser Einrückungsstile. Die Beispiele in diesem Leitfaden verwenden den Allman-Stil aus den Microsoft Framework Design Guidelines. Unabhängig davon, für welchen Sie sich als Team entscheiden, stellen Sie sicher, dass alle denselben Einrückungs- und Klammerstil befolgen.
Die Einrückung besteht typischerweise aus zwei oder vier Leerzeichen. Bringen Sie alle in Ihrem Team dazu, sich auf eine Einstellung in Ihren Editor-Einstellungen zu einigen, ohne einen Tabs gegen Leerzeichen-Flammenkrieg zu entfachen. Beachten Sie, dass Visual Studio die Option bietet, Tabs in Leerzeichen zu konvertieren.
Navigieren Sie in Visual Studio (Windows) zu Tools > Optionen > Text-Editor > C# > Tabs.
Navigieren Sie in Visual Studio für Mac zu Voreinstellungen > Quellcode > C#-Quellcode. Wählen Sie den Textstil aus, um die Einstellungen anzupassen.

Lassen Sie keine Klammern weg – nicht einmal für einzeilige Anweisungen. Klammern erhöhen die Konsistenz, was Ihren Code leichter lesbar und wartbar macht. In diesem Beispiel trennen die Klammern klar die Aktion, DoSomething, von der Schleife.
Wenn Sie später eine Debug-Zeile hinzufügen oder DoSomethingElse ausführen müssen, sind die Klammern bereits vorhanden. Das Halten der Klausel in einer separaten Zeile ermöglicht es Ihnen, leicht einen Haltepunkt hinzuzufügen.
Entfernen Sie keine geschweiften Klammern aus geschachtelten mehrzeiligen Anweisungen. Das Entfernen von geschweiften Klammern in diesem Fall wird keinen Fehler auslösen, könnte jedoch Verwirrung stiften. Wenden Sie geschweifte Klammern zur Klarheit an, auch wenn sie optional sind. Klammern stellen auch sicher, dass Änderungen, wie das Hinzufügen neuer Logik, sicher durchgeführt werden können, ohne die umgebende Struktur umgestalten zu müssen.
Die Formatierung kann variieren, also dokumentieren Sie die Vorlieben Ihres Teams in Ihrem Stilhandbuch und standardisieren Sie Ihre switch Anweisungen entsprechend.
Hier ist ein Beispiel, bei dem Sie die Fallanweisungen einrücken. Es wird allgemein empfohlen, auch einen Standardfall einzuschließen. Selbst wenn der Standardfall nicht benötigt wird (zum Beispiel in Fällen, in denen alle Möglichkeiten abgedeckt sind), stellt das Einfügen eines sicher, dass der Code darauf vorbereitet ist, unerwartete Werte zu verarbeiten.
Etwas so Einfaches wie Abstände kann das Erscheinungsbild Ihres Codes auf dem Bildschirm verbessern. Ihre persönlichen Formatierungspräferenzen können variieren, aber versuchen Sie die folgenden Vorschläge, um die Lesbarkeit zu verbessern.
Fügen Sie Leerzeichen hinzu, um die Code-Dichte zu verringern.Der zusätzliche Leerraum kann ein Gefühl der visuellen Trennung zwischen Teilen einer Zeile vermitteln, was die Lesbarkeit verbessert.
Verwenden Sie einen einzelnen Abstand nach einem Komma zwischen den Funktionsargumenten.
Fügen Sie nach der Klammer und den Funktionsargumenten keinen Abstand hinzu.
Verwenden Sie keine Abstände zwischen einem Funktionsnamen und der Klammer.
Vermeiden Sie nach Möglichkeit Abstände innerhalb von Klammern.
Verwenden Sie einen einzelnen Abstand vor Kontrollflussbedingungen und fügen Sie einen Abstand zwischen dem Vergleichsoperator und den Klammern hinzu.
Verwenden Sie einen einzelnen Abstand vor und nach Vergleichsoperatoren.
Halten Sie die Zeilen kurz. Berücksichtigen Sie den horizontalen Leerraum: Entscheiden Sie sich für eine Standardzeilenbreite (80-120 Zeichen). Brechen Sie eine lange Zeile in kleinere Anweisungen auf, anstatt sie überlaufen zu lassen.
Behalten Sie Einrückung/Hierarchie bei: Rücken Sie Ihren Code ein, um die Lesbarkeit zu erhöhen.
Verwenden Sie keine Spaltenausrichtung, es sei denn, es ist für die Lesbarkeit erforderlich: Diese Art der Abstände richtet die Variablen aus, kann es jedoch schwierig machen, den Typ mit dem Namen zu paaren.
Die Spaltenausrichtung kann jedoch für bitweise Ausdrücke oder Strukturen mit vielen Daten nützlich sein. Seien Sie sich einfach bewusst, dass es mehr Arbeit für Sie bedeuten kann, die Spaltenausrichtung aufrechtzuerhalten, während Sie weitere Elemente hinzufügen. Einige Auto-Formatter könnten auch ändern, welcher Teil der Spalte ausgerichtet wird.
Sie können den vertikalen Abstand ebenfalls zu Ihrem Vorteil nutzen. Halten Sie verwandte Teile des Skripts zusammen und nutzen Sie Leerzeilen zu Ihrem Vorteil. Versuchen Sie diese Vorschläge, um Ihren Code von oben nach unten zu organisieren:
Halten Sie dies auf ein Minimum und vermerken Sie in Ihrem Stilhandbuch, wo es zutrifft.
Verwendung von Regionen in Ihrem Code
Die #region-Direktive ermöglicht es dir, Abschnitte von Code in C#-Dateien zu minimieren und zu verbergen, wodurch große Dateien übersichtlicher und leichter lesbar werden.
Wenn Sie jedoch den allgemeinen Rat für Klassen aus diesem Leitfaden befolgen, sollte die Größe Ihrer Klasse überschaubar sein und die #region -Direktive überflüssig sein. Zerlege deinen Code in kleinere Klassen, anstatt Codeblöcke hinter Regionen zu verbergen. Du wirst weniger geneigt sein, eine Region hinzuzufügen, wenn die Quelldatei kurz ist.
Hinweis: Viele Entwickler betrachten Regionen als Codegerüche oder Anti-Pattern. Entscheidet als Team, auf welcher Seite der Debatte ihr steht.
Verzweifle nicht, wenn diese Formatierungsregeln überwältigend erscheinen. Moderne IDEs machen es effizient, sie einzurichten und durchzusetzen. Du kannst eine Vorlage von Formatierungsregeln erstellen und dann deine Projektdateien auf einmal konvertieren.
Um Formatierungsregeln für den Skripteditor festzulegen:
Wenn Sie zu irgendeinem Zeitpunkt möchten, dass Ihre Skriptdatei dem Stilhandbuch entspricht:
Unter Windows können Sie auch Ihre Editor-Einstellungen von Tools > Importieren und Exportieren von Einstellungen teilen. Exportieren Sie eine Datei mit der C#-Codeformatierung der Stilrichtlinie und lassen Sie dann jedes Teammitglied diese Datei importieren.
Visual Studio erleichtert es, den Stilrichtlinien zu folgen. Das Formatieren wird dann so einfach wie die Verwendung einer Tastenkombination.
Hinweis: Sie können stattdessen eine EditorConfig Datei konfigurieren, anstatt die Visual Studio-Einstellungen zu importieren und zu exportieren. Dies ermöglicht es Ihnen, die Formatierung einfacher über verschiedene IDEs hinweg zu teilen, und hat den zusätzlichen Vorteil, dass es mit der Versionskontrolle funktioniert. Siehe die .NET-Code-Stilregeloptionen für weitere Informationen.
Obwohl dies nicht spezifisch für sauberen Code ist, sollten Sie sich 10 Möglichkeiten ansehen, um Ihren Programmierworkflow in Unity mit Visual Studio zu beschleunigen. Sauberer Code ist viel einfacher zu formatieren und zu refaktorisieren, wenn Sie diese Produktivitätstipps anwenden.

Um eine .editorconfig-Datei in Visual Studio Code einzurichten, befolgen Sie diese Schritte:
Hier ist ein Beispiel für eine Konfiguration für C#:
# oberste EditorConfig-Datei
root = true
# Unix-Stil Zeilenumbrüche mit einem Zeilenumbruch am Ende jeder Datei
[*]
end_of_line = lf
insert_final_newline = true
# 4 Leerzeichen Einrückung
[*.cs]
indent_style = space
indent_size = 4
charset = utf-8
trim_trailing_whitespace = true
# Tab-Einrückung für Makefiles
[Makefile]
indent_style = tab
# Spezifische Einstellungen für JSON-Dateien
[*.json]
indent_style = space
indent_size = 2
Erfahren Sie mehr über Namenskonventionen hier oder sehen Sie sich das vollständige E-Book an. Sie können auch unser detailliertes Beispiel für den Code-Stil-Leitfaden erkunden.