是否存在具有前导数字的枚举值的命名约定?

时间:2009-09-08 16:54:44

标签: c# enums

我有一个c#枚举,如下所示:

public enum EthernetLinkSpeed {

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

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

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

    [Description("Disconnected")]
    Disconnected
}

我为每个值添加了一个前导下划线,以使编译器满意。

这样的枚举是否有标准的命名约定?我用过的下划线似乎不是最好的选择。

7 个答案:

答案 0 :(得分:11)

我知道没有惯例,但是怎么样

public enum EthernetLinkSpeed {
 Link10BaseT, Link1000BaseT, LinkDisconnected
}

答案 1 :(得分:4)

我只想在这种情况下寻找更具描述性的内容。例如,由于你有一个“Disconnected”枚举值,我会使用类似的东西:

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

由于这些只是编译时间,所以只要你喜欢它们就没有任何损害,即使长时间只是意味着使它们足够描述以传递编译器的命名规则。

答案 2 :(得分:2)

不是直接答案,但内置NetworkInterfaceType枚举包含以下值:

Ethernet, Ethernet3Megabit, FastEthernetT, FastEthernetFx, GigabitEthernet

我觉得这有点难看,但我可能会考虑为你的枚举使用Ethernet前缀:

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

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

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

    [Description("Disconnected")]
    Disconnected
}

答案 3 :(得分:1)

我不确定是否有约定,但这样的事情可能主观上不那么“丑陋”:

public enum EthernetLinkSpeed {

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

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

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

    [Description("Disconnected")]
    Disconnected
}

答案 4 :(得分:1)

我们通常在前缀为'e'

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

我们处理了很多视频分辨率,720p等,所以我们使用e720p。在您的情况下,我认为使用名称可能更好,以太网,FastEthernet和千兆以太网。

答案 5 :(得分:0)

正如您所注意到的,名字很重要。因此,有时探索非显而易见的替代方案是有益的。

完全不同的选择:

public enum EthernetLinkSpeed {

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

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

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

  [Description("Disconnected")]
  Disconnected
}

答案 6 :(得分:0)

为所有相关枚举添加唯一前缀绝不会受到伤害。如果不出意外,它可以帮助您搜索/替换源代码的编辑。