2010-09-20 6 views
3

Je voudrais savoir s'il existe un standard pour définir l'ordre des modificateurs de fonction en C#. à savoirOrdre des modificateurs de fonction en C#

public static void Method() 
{} 

static public void Method() 
{} 

cette fois bien, mais

quand je code:

public void static Method() 
{} 

Je reçois l'erreur suivante:

Member modifier 'static' must precede the member type and name

et

Method must have a return type

+3

Possible duplicata de [Existe-t-il une convention dans l'ordre des modificateurs en C#?] (http://stackoverflow.com/questions/191929/is-there-a-convention-to-the-order-of- modiers-en-c) –

Répondre

9

Les déclarations de méthode doivent toujours suivre ce modèle:

[modifiers] returnType methodName([parameters]) 

Il n'y a pas de règle en ce qui concerne l'ordre des modificateurs, mais ils doivent toujours précéder le type de retour.

Je ne pense pas qu'il y ait un ordre standard, les gens font comme ils ... s'il vous plaît personnellement, je préfère mettre le modificateur d'accès (public, private, etc.) d'abord, puis le modificateur static (le cas échéant), puis le modificateur virtual, abstract ou override (le cas échéant).

Voir les spécifications C# pour plus de détails (§10.6)

+0

De bons points Thomas, s'il vous plaît tout autre "modèle de modificateurs" auto-créé? –

+1

Thomas, pourriez-vous s'il vous plaît ajouter un lien vers "Voir la spécification C# pour les détails (§10.6)". J'ai téléchargé les spécifications mais je ne les ai pas trouvées maintenant. –

+0

Il n'y a pas de version en ligne de la spécification, donc je ne peux pas publier un lien direct ... Dans la version 3.0 de la spécification, §10.6 est sur la page 295 –

4

Le problème est que void n'est pas un modificateur - c'est le type de retour. Tous les modificateurs doivent venir avant le type de retour.

Je suis assez sûr qu'il est une convention pour la commande de modificateurs véritables, mais je ne sais pas où il est documenté.

J'écrirais toujours l'accessibilité (publique, etc.) en premier.

+0

En l'absence d'une convention plus officielle, je proposerais d'aller dans l'ordre où les modificateurs sont listés dans la [spécification (page 307)] (http://go.microsoft.com/fwlink /? LinkId = 199552). 'nouveau public protégé privé virtuel statique caché override abstrait extern async'. Je pense que cela correspond aux exemples officiels MSDN. – lordcheeto

1

Il n'y a pas d'ordre spécifique pour les modificateurs de la méthode.

Voici la grammaire formelle de la spécification standard C# ...

Les méthodes sont déclarées en utilisant la méthode-déclarations:
méthode déclaration:
méthode corps méthode en-tête

méthode en-tête:
attributs opt méthode modificateurs opt partiel optretour-typenom-de-membre type paramètre liste opt (formel paramètres liste opt) type-paramètre contraintes clauses opt

**** méthode modificateurs: ****
nouvelle
publique
protégé
interne
privé
statique
virtuel
scellé

override résumé

extern -type de retour:

Type vide
-nom d'abonné:


identificateur de type d'interface. identifiant

Questions connexes