我有一个c#枚举,如下所示:
public enum EthernetLinkSpeed {
[Description("10BASE-T")]
_10BaseT,
[Description("100BASE-T")]
_100BaseT,
[Description("1000BASE-T")]
_1000BaseT,
[Description("Disconnected")]
Disconnected
}
我为每个值添加了一个前导下划线,以使编译器满意。
这样的枚举是否有标准的命名约定?我用过的下划线似乎不是最好的选择。
答案 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)
为所有相关枚举添加唯一前缀绝不会受到伤害。如果不出意外,它可以帮助您搜索/替换源代码的编辑。