5 Stimmen

Reihenfolge der Funktionsmodifikatoren in C#

Ich möchte wissen, ob es einen Standard gibt, um die Reihenfolge der Funktionsmodifikatoren in C# festzulegen, d.h.

public static void Method()
{}

static public void Method()
{}

das funktioniert beides gut, ABER

wenn ich codiere:

public void static Method()
{}

Ich erhalte die folgende Fehlermeldung:

Mitgliedsmodifikator 'st dem Typ und Namen des Mitglieds

Methode muss einen Rückgabetyp haben

10voto

Thomas Levesque Punkte 277723

Methodendeklarationen müssen immer diesem Muster folgen:

[modifiers] returnType methodName([parameters])

Für die Reihenfolge der Modifikatoren gibt es keine Vorschrift, sie müssen jedoch immer vor dem Rückgabetyp stehen.

Ich glaube nicht, dass es eine Standardreihenfolge gibt, die Leute machen einfach, was sie wollen... Ich persönlich ziehe es vor, den Zugangsmodifikator ( public , private usw.) zuerst, dann die static Modifikator (falls vorhanden), dann wird der virtual , abstract o override Modifikator (falls zutreffend).

Siehe die C#-Spezifikation für Details (§10.6)

5voto

Jon Skeet Punkte 1325502

Das Problem ist, dass void ist kein Modifikator - es ist der Rückgabetyp. Alle Modifikatoren müssen vor dem Rückgabetyp stehen.

Ich bin mir ziemlich sicher, dass es です eine Konvention für die Reihenfolge der echten Modifikatoren, aber ich weiß nicht, wo sie dokumentiert ist.

Ich würde immer zuerst die Zugänglichkeit (öffentlich usw.) schreiben.

1voto

explorer Punkte 10770

Es gibt keine bestimmte Reihenfolge für Methodenmodifikatoren.

Es folgt die formale Grammatik aus der C#-Standardspezifikation ...

Methoden werden mit Hilfe von Methodenerklärungen deklariert:
Methoden-Deklaration:
methoden-kopf methoden-körper

Methoden-Kopfzeile:
Eigenschaften optieren Methoden-Modifikatoren optieren teilweise optieren Rückgabeart mitglied-name Typ-Parameter-Liste optieren ( Formal-Parameter-Liste optieren ) Typ-Parameter-Beschränkungen-Klauseln optieren

****method-modifiers:****
neu
öffentlich
geschützt
intern
privat
statique
virtuell
versiegelt
Überschreiben Sie
abstrakt
extern
Rückgabe-Typ:
Typ
ungültig
Mitglied-Name:
Kennung
Schnittstellen-Typ . Bezeichner

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X