2009-09-08 10 views
5

Mam C# wyliczanie, który wygląda tak:Czy istnieje konwencja nazewnictwa dla wartości wyliczeniowych, które mają wiodącą cyfrę?

public enum EthernetLinkSpeed { 

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

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

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

    [Description("Disconnected")] 
    Disconnected 
} 

dodałem wiodącego podkreślenia każdej wartości, aby kompilator szczęśliwy.

Czy istnieje standardowa konwencja nazewnictwa dla takich wyliczeń? Podkreślenie, którego użyłem, nie wydaje się najlepszym wyborem.

+0

Używam również podkreśleń. –

+0

Jeśli rzeczywisty eNum nie jest wystawiony na publiczny widok, to kogo to obchodzi tak długo, jak działa kod! –

+1

@Peter M: Inni programiści, którzy muszą zachować kod później. I przy okazji: "public enum EthernetLinkSpeed" oznacza, że ​​wyliczenie jest widoczne dla widoku publicznego. – mmmmmmmm

Odpowiedz

11

Nie znam konwencją, ale jak o

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

+1 W języku C iw linuksie wyliczenia portów szeregowych używają tego rodzaju prefiksu (czasami krótszego): szybkości transmisji są nazywane Bxxxxx, gdzie xxxxx jest stałą (całkowitą stałą): B9600 to szybkość transmisji 9600. W każdym razie pomysł jest taki sam: krótki prefiks, który pomaga zidentyfikować treść. –

+0

Wybrałem tę sugestię jako odpowiedź na mój konkretny przykład, jednak ogólny konsensus wydaje się, że potrzebny jest jakiś standardowy prefiks. – user158485

1

Nie jestem pewien, czy jest to konwencja, ale coś w tym może być subiektywnie mniej „brzydki”:

public enum EthernetLinkSpeed { 

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

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

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

    [Description("Disconnected")] 
    Disconnected 
} 
4

Po prostu szukam czegoś bardziej opisowego w tym przypadku. Na przykład, ponieważ masz „Disconnected” wartość enum, chciałbym użyć czegoś takiego:

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

Ponieważ są to w czasie kompilacji tylko, że nie ma uszkodzeń w ich posiadania, jak długo chcesz, nawet jeśli czyni je długo po prostu oznacza, że ​​są wystarczająco opisowe, aby przekazać zasady nazewnictwa kompilatora.

2

Nie bezpośrednia odpowiedź, ale wbudowany NetworkInterfaceType wyliczenia zawiera następujące wartości:

Ethernet, Ethernet3Megabit, FastEthernetT, FastEthernetFx, GigabitEthernet 

to trochę brzydki jak na mój gust, ale mogę rozważyć użycie Ethernet prefiks enum:

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

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

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

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

Zdecydowanie nie nazewnictwo, które wybrałbym ... – mmmmmmmm

0

Jak już zauważyłeś, nazwy są ważne. Czasami dobrze jest odkrywać nieoczywiste alternatywy.

Zupełnie inna alternatywa:

public enum EthernetLinkSpeed { 

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

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

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

    [Description("Disconnected")] 
    Disconnected 
} 
1

Zwykle poprzedzić je z 'e'

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

Mamy do czynienia z wieloma rozdzielczościach 720p wideo, itp, więc używamy e720p. W twoim przypadku, myślę, że używanie nazw może być lepsze, Ethernet, FastEthernet i GigabitEthernet.

0

Nigdy nie boli dodawać unikatowy przedrostek do wszystkich powiązanych podsumowań. Jeśli nic więcej, pomaga przy wyszukiwaniu/zamianie edycji kodu źródłowego w dół drogi.

Powiązane problemy