2009-09-08 7 views
5

J'ai une énumération C# qui ressemble à ceci:Existe-t-il une convention de dénomination pour les valeurs enum ayant un chiffre principal?

public enum EthernetLinkSpeed { 

    [Description("10BASE-T")] 
    _10BaseT, 

    [Description("100BASE-T")] 
    _100BaseT, 

    [Description("1000BASE-T")] 
    _1000BaseT, 

    [Description("Disconnected")] 
    Disconnected 
} 

J'ai ajouté un underscore à chaque valeur pour rendre le compilateur heureux.

Existe-t-il une convention de dénomination standard pour les énumérations comme celle-ci? Le trait de soulignement que j'ai utilisé ne semble pas être le meilleur choix.

+0

J'utilise aussi des underscores. –

+0

Si l'eNum réel n'est pas exposé à une vue publique, alors qui s'en soucie tant que le code fonctionne! –

+1

@Peter M: D'autres développeurs qui doivent maintenir le code plus tard. Et btw: "public enum EthernetLinkSpeed" signifie que l'enum est visible à une vue publique. – mmmmmmmm

Répondre

11

Je ne connais pas la convention, mais que diriez-vous

public enum EthernetLinkSpeed { 
Link10BaseT, Link1000BaseT, LinkDisconnected 
} 
+0

+1 En C et Linux, les énumérations de port série utilisent ce type de préfixe (parfois plus court): Les débits en bauds sont nommés Bxxxxx où xxxxx est la vitesse (constante entière): B9600 est un débit de 9600 bauds. Quoi qu'il en soit, l'idée est la même: un préfixe court qui aide à identifier le contenu. –

+0

J'ai choisi cette suggestion comme réponse pour mon exemple particulier, mais le consensus général semble être qu'un préfixe standard quelconque est nécessaire. – user158485

1

Je ne sais pas s'il y a une convention, mais quelque chose comme cela peut être subjectivement moins « laid »:

public enum EthernetLinkSpeed { 

    [Description("10BASE-T")] 
    TenBaseT, 

    [Description("100BASE-T")] 
    OneHundredBaseT, 

    [Description("1000BASE-T")] 
    OneThousandBaseT, 

    [Description("Disconnected")] 
    Disconnected 
} 
4

Je cherche juste quelque chose de plus descriptif dans ce cas. Par exemple, puisque vous avez un « Disconnected » valeur ENUM, je voudrais utiliser quelque chose comme:

public enum EthernetLinkSpeed { 
    Connected10BaseT, 
    Connected100BaseT, 
    Connected1000BaseT, 
    Disconnected 
} 

Comme ce ne sont que la compilation, il n'y a aucun dommage à les faire aussi longtemps que vous voulez, même si ce qui les rend à long signifie juste les rendre assez descriptifs pour passer les règles de nommage du compilateur.

2

Pas une réponse directe, mais le haut-NetworkInterfaceType Enum les valeurs suivantes:

Ethernet, Ethernet3Megabit, FastEthernetT, FastEthernetFx, GigabitEthernet 

Il est un peu moche à mon goût, mais je pourrais envisager d'utiliser un préfixe Ethernet pour votre enum:

public enum EthernetLinkSpeed 
{ 
    [Description("10BASE-T")] 
    Ethernet10BaseT, 

    [Description("100BASE-T")] 
    Ethernet100BaseT, 

    [Description("1000BASE-T")] 
    Ethernet1000BaseT, 

    [Description("Disconnected")] 
    Disconnected 
} 
+0

Certainement pas le nom que je choisirais ... – mmmmmmmm

0

Comme vous l'avez remarqué, les noms sont importants. Ainsi, il est parfois bon d'explorer des alternatives non évidentes.

Une toute autre solution:

public enum EthernetLinkSpeed { 

    [Description("10BASE-T")] 
    MegabitSlow, 

    [Description("100BASE-T")] 
    MegabitFast, 

    [Description("1000BASE-T")] 
    Gigabit, 

    [Description("Disconnected")] 
    Disconnected 
} 
1

Nous les préfixe généralement avec 'e'

public enum EthernetLinkSpeed 
{ 
    e10BaseT, 
    e100BaseT, 
    e1000BaseT, 
    Disconnected 
} 

Nous traitons avec beaucoup de résolutions vidéo, 720p etc, donc nous utilisons e720p. Dans votre cas, je pense que l'utilisation des noms pourrait être meilleure, Ethernet, FastEthernet et GigabitEthernet.

0

Il ne fait jamais de mal d'ajouter un préfixe unique à toutes les énumérations connexes. Si rien d'autre, il aide à la recherche/remplacer l'édition de votre code source sur la route.

Questions connexes