Hero background image
Bewährte Formatierungsverfahren für C#-Skripte in Unity

Es gibt zwar nicht die eine richtige Art und Weise, Ihren C#-Code zu formatieren, aber eine Einigung auf einen einheitlichen Stil im gesamten Team kann zu einer saubereren, besser lesbaren und skalierbaren Codebasis führen. Auf dieser Seite finden Sie Tipps und wichtige Überlegungen, die Sie bei der Erstellung Ihres eigenen Styleguides für Ihre Klassen, Methoden und Kommentare beachten sollten.

Anmerkung: Die hier gegebenen Empfehlungen basieren auf denen von Microsoft. Die besten Code-Style-Guide-Regeln sind die, die für die Bedürfnisse Ihres Teams geeignet sind.

Ein Beispiel für einen Code-Styleguide finden Sie hier oder laden Sie das vollständige E-Book herunter: Erstellen Sie einen C#-Styleguide: Schreiben Sie saubereren Code, der skalierbar ist.

Formatierung des Codes

Neben der Benennung trägt die Formatierung dazu bei, Rätselraten zu vermeiden und die Klarheit des Codes zu verbessern. Durch die Befolgung eines standardisierten Styleguides geht es bei der Codeüberprüfung weniger darum, wie der Code aussieht, sondern vielmehr darum, was er leistet.

Versuchen Sie, die Art und Weise, wie Ihr Team den Code formatieren wird, zu personalisieren. Berücksichtigen Sie die folgenden Vorschläge zur Formatierung des Codes, wenn Sie Ihren Unity-Style-Guide erstellen. Sie können diese Beispielregeln weglassen, erweitern oder ändern, um sie an die Bedürfnisse Ihres Teams anzupassen.

Überlegen Sie in jedem Fall, wie Ihr Team die einzelnen Formatierungsregeln umsetzen wird, und sorgen Sie dann dafür, dass alle sie einheitlich anwenden. Ziehen Sie den Styleguide Ihres Teams zu Rate, um etwaige Unstimmigkeiten zu klären. Je weniger Sie über die Formatierung nachdenken, desto produktiver - und kreativer - können Sie arbeiten.

Werfen wir einen Blick auf einige Formatierungsrichtlinien.

Eigenschaften

Eine Eigenschaft bietet einen flexiblen Mechanismus zum Lesen, Schreiben oder Berechnen von Klassenwerten. Eigenschaften verhalten sich so, als wären sie öffentliche Mitgliedsvariablen, aber in Wirklichkeit sind sie spezielle Methoden, die Accessoren.

Jede Eigenschaft hat eine get- und set-Methode, um auf ein privates Feld zuzugreifen, das als Backing-Feld. Auf diese Weise kapselt die Eigenschaft die Daten ein und verbirgt sie vor unerwünschten Änderungen durch den Benutzer oder externe Objekte. Die "Getter" und "Setter" haben jeweils ihren eigenen Zugriffsmodifikator, so dass Ihre Eigenschaft schreibgeschützt, nur lesend oder nur schreibend sein kann.

Sie können die Accessoren auch verwenden, um die Daten zu validieren oder zu konvertieren (z. B. um zu überprüfen, ob die Daten in Ihr bevorzugtes Format passen, oder um einen Wert in eine bestimmte Einheit zu ändern).

Die Syntax für Eigenschaften kann variieren, daher sollte Ihr Style Guide festlegen, wie sie zu formatieren sind. In den folgenden Beispielen finden Sie Tipps, wie Sie Eigenschaften in Ihrem Code konsistent halten können.

Ausdrucksstarke Eigenschaften

Verwenden Sie ausdrucksbasierte Eigenschaften für einzeilige, schreibgeschützte Eigenschaften (=>): Dies gibt das private Sicherungsfeld zurück.

Auto-implementierte Eigenschaft

Für alles andere wird die Syntax des Ausdrucks { get; set; } verwendet: Wenn Sie nur eine öffentliche Eigenschaft ohne Angabe eines Hintergrundfeldes freigeben möchten, verwenden Sie die auto-implementierte Eigenschaft.

Wenden Sie die ausdrucksbasierte Syntax für die Accessoren set und get an. Denken Sie daran, den "Setter" privat zu machen, wenn Sie keinen Schreibzugriff gewähren wollen. Richten Sie bei mehrzeiligen Codeblöcken die schließende an der öffnenden Klammer aus.

Serialisierbare Klasse
EINE SERIALISIERBARE KLASSE ODER STRUKTUR KANN DIE ORGANISATION DES INSPEKTORS ERLEICHTERN.
Serialisierung

Die Skript-Serialisierung ist der automatische Prozess der Umwandlung von Datenstrukturen oder Objektzuständen in ein Format, das Unity speichern und später rekonstruieren kann. Aus Leistungsgründen wird die Serialisierung in Unity anders gehandhabt 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 oder mit dem Attribut [SerializeField] gekennzeichnet sein. Unity serialisiert nur bestimmte Feldtypen, daher finden Sie in der Dokumentation den vollständigen Satz an Serialisierungsregeln.

Beachten Sie diese grundlegenden Richtlinien bei der Arbeit mit serialisierten Feldern:

Verwenden Sie das Attribut [SerializeField]: Das SerializeField-Attribut kann mit privaten oder geschützten Variablen arbeiten, damit sie im Inspector erscheinen. Dadurch werden die Daten besser gekapselt als durch die Kennzeichnung der Variablen als öffentlich und es wird verhindert, dass ein externes Objekt die Werte überschreibt.

Verwenden Sie das Attribut Bereich, um Mindest- und Höchstwerte festzulegen: Das [Range(min, max)]-A ttribut ist praktisch, wenn Sie den Wert, den der Benutzer einem numerischen Feld zuweisen kann, begrenzen wollen. Außerdem wird das Feld im Inspektor bequem als Schieberegler dargestellt.

Gruppieren Sie Daten in serialisierbaren Klassen oder Strukturen, um den Inspector zu entlasten: Definieren Sie eine öffentliche Klasse oder Struktur und kennzeichnen Sie sie mit dem Attribut [Serializable]. Definieren Sie öffentliche Variablen für jeden Typ, den Sie im Inspector offenlegen wollen.

Diese serialisierbare Klasse von einer anderen Klasse aus referenzieren. Die resultierenden Variablen werden im Inspektor in zusammenklappbaren Einheiten angezeigt.

Stil der Klammern oder Einrückungen

Es gibt zwei gängige Einrückungsstile in C#:

Der Allman-Stil, auch bekannt als BSD-Stil (von BSD Unix), setzt die öffnenden geschweiften Klammern in eine neue Zeile.

Beim K&R-Stil oder "One True Brake Style" bleibt die Öffnungsstrebe auf der gleichen Linie wie der vorherige Header.

Es gibt auch Variationen dieser Einrückungsarten. Die Beispiele in diesem Handbuch verwenden den Allman-Stil aus den Microsoft Framework Design Guidelines. Unabhängig davon, für welche Variante Sie sich als Team entscheiden, achten Sie darauf, dass alle die gleiche Einrückung und Klammerung verwenden. Sie können auch die Tipps in den folgenden Abschnitten ausprobieren.

Cis-Tabellen
TABS EINSTELLUNGEN IN VISUAL STUDIO FÜR WINDOWS
Entscheiden Sie sich für eine einheitliche Einrückung

Die Einrückung beträgt in der Regel zwei oder vier Leerzeichen. Bringen Sie alle in Ihrem Team dazu, sich auf eine Einstellung in den Editor-Einstellungen zu einigen, ohne einen Flamewar zwischen Tabs und Spaces zu entfachen.

Navigieren Sie in Visual Studio für Windows zu Extras > Optionen > Texteditor > C# > Registerkarten.

Navigieren Sie in Visual Studio für Mac zu Voreinstellungen > Quellcode > C#-Quellcode. Wählen Sie den Textstil, um die Einstellungen anzupassen.

Anmerkung: Visual Studio bietet die Möglichkeit, Tabulatoren in Leerzeichen umzuwandeln.

Klammern nicht weglassen

Lassen Sie keine geschweiften Klammern weg - auch nicht bei einzeiligen Anweisungen. Klammern erhöhen die Konsistenz, wodurch Ihr Code leichter zu lesen und zu pflegen ist. In diesem Beispiel trennen die geschweiften Klammern die Aktion "DoSomething" deutlich von der Schleife.

Wenn Sie später eine Debug-Zeile hinzufügen oder DoSomethingElse ausführen müssen, sind die geschweiften Klammern bereits vorhanden. Wenn Sie die Klausel in einer separaten Zeile halten, können Sie einfach einen Haltepunkt hinzufügen.

Behalten Sie geschweifte Klammern bei mehrzeiligen Anweisungen bei

Entfernen Sie keine geschweiften Klammern aus verschachtelten mehrzeiligen Anweisungen. Das Entfernen der geschweiften Klammern führt in diesem Fall zwar nicht zu einem Fehler, aber wahrscheinlich zu Verwirrung. Bringen Sie Klammern an, um Klarheit zu schaffen, auch wenn sie optional sind.

Standardisierung von switch-Anweisungen

Die Formatierung kann variieren, also dokumentieren Sie die Präferenzen Ihres Teams in Ihrem Styleguide und standardisieren Sie Ihre Switch Statements entsprechend.

Hier ist ein Beispiel für die Einrückung der Case-Anweisungen.

Horizontale Abstände

Etwas so Einfaches wie ein Abstand kann das Erscheinungsbild Ihres Codes auf dem Bildschirm verbessern. Auch wenn die persönlichen Formatierungsvorlieben variieren können, sollten Sie die folgenden Vorschläge zur Verbesserung der Lesbarkeit berücksichtigen.

Räume hinzufügen

Fügen Sie Leerzeichen hinzu, um die Code-Dichte zu verringern. Der zusätzliche Leerraum vermittelt den Eindruck einer visuellen Trennung zwischen den Teilen einer Zeile.

Abstände nach einem Komma

Verwenden Sie zwischen den Funktionsargumenten ein einzelnes Leerzeichen nach einem Komma.

Kein Zwischenraum nach der Klammer

Fügen Sie nach den Klammern und Funktionsargumenten kein Leerzeichen ein.

Kein Leerzeichen zwischen einer Funktion und einer Klammer

Verwenden Sie keine Leerzeichen zwischen einem Funktionsnamen und einer Klammer.

Leerzeichen innerhalb von Klammern sind zu vermeiden

Vermeiden Sie so weit wie möglich Leerzeichen innerhalb von Klammern.

Abstände vor den Bedingungen der Durchflusskontrolle

Verwenden Sie ein einzelnes Leerzeichen vor den Flusssteuerungsbedingungen und fügen Sie ein Leerzeichen zwischen dem Flussvergleichsoperator und den Klammern ein.

Abstände mit Vergleichsoperatoren

Verwenden Sie ein einzelnes Leerzeichen vor und nach Vergleichsoperatoren.

Tipps zur Lesbarkeit

Halten Sie die Zeilen kurz und berücksichtigen Sie horizontalen Leerraum. Entscheiden Sie sich für eine Standardzeilenbreite (80-120 Zeichen), und unterteilen Sie eine lange Zeile in kleinere Anweisungen, damit sie nicht überläuft.

Wie bereits erwähnt, sollten Sie versuchen, die Einrückung/Hierarchie beizubehalten. Eine Einrückung des Codes kann die Lesbarkeit verbessern.

Verwenden Sie keine Spaltenausrichtung, es sei denn, sie ist für die Lesbarkeit erforderlich. Diese Art von Abstand richtet die Variablen zwar aus, kann aber die Zuordnung des Typs zum Namen erschweren.

Die Spaltenausrichtung kann jedoch für bitweise Ausdrücke oder Strukturen mit vielen Daten nützlich sein. Seien Sie sich nur bewusst, dass es für Sie mehr Arbeit bedeuten kann, die Spaltenausrichtung beizubehalten, wenn Sie weitere Elemente hinzufügen. Einige automatische Formatierer können auch den Teil der Spalte ändern, der ausgerichtet wird.

Vertikale Abstände und Regionen

Sie können auch vertikale Abstände zu Ihrem Vorteil nutzen. Halten Sie zusammengehörige Teile des Drehbuchs zusammen und nutzen Sie Leerzeilen zu Ihrem Vorteil. Versuchen Sie Folgendes, um Ihren Code von oben nach unten zu organisieren:

  • Gruppieren Sie abhängige oder ähnliche Methoden zusammen: Der Code muss logisch und kohärent sein. Halten Sie Methoden, die dasselbe tun, nebeneinander, so dass jemand, der Ihre Logik liest, nicht in der Datei herumspringen muss.
  • Verwenden Sie den vertikalen Leerraum, um verschiedene Teile Ihrer Klasse zu trennen: Sie können zum Beispiel zwei Leerzeilen dazwischen einfügen:
  • Variablendeklarationen und Methoden
  • Klassen und Schnittstellen
  • if-then-else-Blöcke (wenn es der Lesbarkeit dient)

Beschränken Sie dies auf ein Minimum, und wenn möglich, halten Sie es in Ihrem Style Guide fest.

Verwendung von Regionen in Ihrem Code

Mit der #region-Direktive können Sie Codeabschnitte in C#-Dateien ein- und ausblenden, wodurch große Dateien überschaubarer und leichter zu lesen werden.

Wenn Sie jedoch die allgemeinen Ratschläge für Klassen aus diesem Leitfaden befolgen, sollte Ihre Klassengröße überschaubar sein und die #region-Direktive überflüssig. Unterteilen Sie Ihren Code in kleinere Klassen, anstatt Codeblöcke hinter Regionen zu verstecken. Sie werden weniger geneigt sein, eine Region hinzuzufügen, wenn die Quelldatei kurz ist.

Anmerkung: Viele Entwickler betrachten Regionen als Code Smells oder Anti-Patterns. Entscheiden Sie als Team, auf welcher Seite der Debatte Sie stehen.

C Sharp-Eigenschaften
DAS VORSCHAUFENSTER ZEIGT DIE VON IHNEN GEWÄHLTEN STYLEGUIDES AN.
Code-Formatierung in Visual Studio

Verzweifeln Sie nicht, wenn Ihnen diese Formatierungsregeln überwältigend erscheinen. Mit modernen IDEs lassen sich diese effizient einrichten und durchsetzen. Sie können eine Vorlage mit Formatierungsregeln erstellen und dann Ihre Projektdateien auf einmal konvertieren.

So richten Sie Formatierungsregeln für den Skript-Editor ein:

  • Navigieren Sie in Visual Studio für Windows zu Extras > Optionen und wählen Sie dann Texteditor > C# > Codestil-Formatierung.
  • Verwenden Sie die Einstellungen, um die Optionen Allgemein, Einrückung, Neue Zeilen, Abstand und Umbruch zu ändern.
  • Wählen Sie in Visual Studio für Mac Visual Studio > Einstellungen und navigieren Sie dann zu Quellcode > Codeformatierung > C#-Quellcode.
  • Wählen Sie oben die Richtlinie aus und gehen Sie dann auf die Registerkarte Textstil. Passen Sie auf der Registerkarte C#-Format die Einstellungen Einrückung, Zeilenumbruch, Abstand und Umbruch an.

So erzwingen Sie, dass Ihre Skriptdatei mit dem Style Guide übereinstimmt:

  • Gehen Sie in Visual Studio für Windows zuBearbeiten > Erweitert > Dokument formatieren ( TastenkombinationStrg + K, Strg + D ). Wenn Sie nur die Leerzeichen und die Tabulatorausrichtung formatieren möchten, können Sie auch die Codebereinigung (Strg + K , Strg + E) am unteren Rand des Editors ausführen.
  • Gehen Sie in Visual Studio für Mac zu Bearbeiten > Dokument formatieren ( Tastenkombination Strg + I ).

Unter Windows können Sie Ihre Editoreinstellungen auch über Extras > Import- und Exporteinstellungen freigeben. Exportieren Sie eine Datei mit der C#-Code-Formatierung des Styleguides, und lassen Sie diese Datei dann von jedem Teammitglied importieren.

Visual Studio unterstützt Sie bei der Einhaltung des Styleguides. Die Formatierung ist dann so einfach wie die Verwendung eines Hotkeys.

Anmerkung: Sie können eineEditorConfig Datei konfigurieren (siehe oben), anstatt die Einstellungen von Visual Studio zu importieren und zu exportieren. Dadurch wird die gemeinsame Nutzung von Formatierungen in verschiedenen IDEs erleichtert. Außerdem hat es den zusätzlichen Vorteil, dass es mit Versionskontrolle arbeitet. Weitere Informationen finden Sie unter den Optionen für .NET-Code-Stilregeln.

Auch wenn dies nicht spezifisch für sauberen Code ist, sollten Sie sich die 10 Möglichkeiten zur Beschleunigung Ihres Programmierworkflows in Unity mit Visual Studio ansehen. Denken Sie daran, dass es bequemer ist, sauberen Code zu formatieren und zu refaktorisieren, wenn Sie diese Produktivitätstipps anwenden.

Weitere Tipps zum Code-Stil

Erfahren Sie hier mehr über Namenskonventionen oder lesen Sie das vollständige E-Book. Sie können auch unser ausführliches Beispiel für einen Code-Style-Guide lesen.

Haben Ihnen diese Inhalte gefallen?