2009-09-08 31 views
5

Tôi có một C# liệt kê trông như thế này:Có quy ước đặt tên cho các giá trị enum có chữ số hàng đầu không?

public enum EthernetLinkSpeed { 

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

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

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

    [Description("Disconnected")] 
    Disconnected 
} 

Tôi đã thêm một lãnh đạo nhấn mạnh để mỗi giá trị để làm cho trình biên dịch hạnh phúc.

Có quy ước đặt tên chuẩn cho các danh sách như thế này không? Dấu gạch dưới tôi đã sử dụng dường như không phải là lựa chọn tốt nhất.

+0

Tôi cũng sử dụng dấu gạch dưới. –

+0

Nếu eNum thực tế không được hiển thị với chế độ xem công khai thì ai quan tâm đến những gì nó được gọi miễn là mã hoạt động! –

+1

@Peter M: Các nhà phát triển khác, những người phải duy trì mã sau này. Và btw: "public enum EthernetLinkSpeed" có nghĩa là enum hiển thị cho chế độ xem công khai. – mmmmmmmm

Trả lời

11

Tôi biết không có quy ước, nhưng làm thế nào về

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

+1 Trong C và trong linux, các liệt kê cổng nối tiếp sử dụng loại tiền tố này (đôi khi ngắn hơn): Tốc độ Baud được đặt tên là Bxxxxx, trong đó xxxxx là tốc độ (hằng số nguyên): B9600 là tốc độ truyền 9600. Dù sao, ý tưởng là như nhau: một tiền tố ngắn giúp xác định nội dung. –

+0

Tôi đã chọn đề xuất này làm câu trả lời cho ví dụ cụ thể của tôi, tuy nhiên sự đồng thuận chung dường như là tiền tố chuẩn của một số loại là cần thiết. – user158485

1

Tôi không chắc chắn nếu có một quy ước, nhưng một cái gì đó như thế này có thể chủ quan ít 'xấu xí':

public enum EthernetLinkSpeed { 

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

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

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

    [Description("Disconnected")] 
    Disconnected 
} 
4

Tôi chỉ tìm một cái gì đó mô tả hơn trong trường hợp này. Ví dụ, kể từ khi bạn có một "ngắt kết nối" giá trị enum, tôi sẽ sử dụng một cái gì đó như:

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

Kể từ đây là những thời gian biên dịch chỉ, không có thiệt hại trong có chúng càng lâu bạn muốn, ngay cả khi làm cho chúng dài chỉ có nghĩa là làm cho chúng đủ mô tả để chuyển các quy tắc đặt tên của trình biên dịch.

2

Không phải là một câu trả lời trực tiếp, nhưng được xây dựng trong NetworkInterfaceType enum bao gồm các giá trị sau:

Ethernet, Ethernet3Megabit, FastEthernetT, FastEthernetFx, GigabitEthernet 

Đó là một chút xấu xí so với sở thích của tôi, nhưng tôi có thể xem xét sử dụng một tiền tố Ethernet cho bạn enum:

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

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

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

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

Chắc chắn không phải đặt tên tôi sẽ chọn ... – mmmmmmmm

0

Như bạn đã nhận thấy, tên là quan trọng. Vì vậy, đôi khi rất tốt để khám phá các lựa chọn thay thế không rõ ràng.

Một sự thay thế hoàn toàn khác nhau:

public enum EthernetLinkSpeed { 

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

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

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

    [Description("Disconnected")] 
    Disconnected 
} 
1

Chúng tôi thường tiền tố họ với 'e'

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

Chúng ta đối phó với rất nhiều độ phân giải video, 720p vv, vì vậy chúng tôi sử dụng e720p. Trong trường hợp của bạn, tôi nghĩ việc sử dụng tên có thể tốt hơn, Ethernet, FastEthernet và GigabitEthernet.

0

Không bao giờ đau khi thêm tiền tố duy nhất vào tất cả các enums liên quan. Nếu không có gì khác, nó giúp với tìm kiếm/thay thế chỉnh sửa mã nguồn của bạn xuống đường.

Các vấn đề liên quan