C# 有前导数字的枚举值是否有命名约定?
我有一个c#枚举,如下所示:C# 有前导数字的枚举值是否有命名约定?,c#,enums,C#,Enums,我有一个c#枚举,如下所示: public enum EthernetLinkSpeed { [Description("10BASE-T")] _10BaseT, [Description("100BASE-T")] _100BaseT, [Description("1000BASE-T")] _1000BaseT, [Description("Disconnected")] Disconnected } 我为每个值添加
public enum EthernetLinkSpeed {
[Description("10BASE-T")]
_10BaseT,
[Description("100BASE-T")]
_100BaseT,
[Description("1000BASE-T")]
_1000BaseT,
[Description("Disconnected")]
Disconnected
}
我为每个值添加了一个前导下划线,以使编译器满意
像这样的枚举是否有标准命名约定?我用的下划线似乎不是最好的选择。我不知道有什么惯例,但是怎么样
public enum EthernetLinkSpeed {
Link10BaseT, Link1000BaseT, LinkDisconnected
}
我不确定是否有一个惯例,但像这样的东西在主观上可能不那么“丑陋”:
public enum EthernetLinkSpeed {
[Description("10BASE-T")]
TenBaseT,
[Description("100BASE-T")]
OneHundredBaseT,
[Description("1000BASE-T")]
OneThousandBaseT,
[Description("Disconnected")]
Disconnected
}
在这种情况下,我只是想找一些更具描述性的东西。例如,由于您有一个“断开连接”的枚举值,因此我将使用如下内容:
public enum EthernetLinkSpeed {
Connected10BaseT,
Connected100BaseT,
Connected1000BaseT,
Disconnected
}
由于它们仅在编译时使用,因此可以随意延长它们,即使使它们变长只是意味着使它们具有足够的描述性以通过编译器的命名规则。不是直接答案,但内置枚举包含以下值:
这是有点丑我喜欢,但我可能会考虑使用<代码>以太网< /代码>前缀为您的枚举:< /P>
public enum EthernetLinkSpeed
{
[Description("10BASE-T")]
Ethernet10BaseT,
[Description("100BASE-T")]
Ethernet100BaseT,
[Description("1000BASE-T")]
Ethernet1000BaseT,
[Description("Disconnected")]
Disconnected
}
正如你所注意到的,名字很重要。所以,有时候探索不明显的替代方案是很好的 完全不同的选择:
public enum EthernetLinkSpeed {
[Description("10BASE-T")]
MegabitSlow,
[Description("100BASE-T")]
MegabitFast,
[Description("1000BASE-T")]
Gigabit,
[Description("Disconnected")]
Disconnected
}
我们通常用“e”作为前缀
public enum EthernetLinkSpeed
{
e10BaseT,
e100BaseT,
e1000BaseT,
Disconnected
}
我们处理很多视频分辨率,720p等,所以我们使用e720p。在您的情况下,我认为使用名称可能更好,以太网、快速以太网和千兆以太网。在所有相关的枚举中添加唯一的前缀不会有任何伤害。如果没有其他功能,它将有助于搜索/替换您的源代码。如果实际的枚举没有公开给公众,那么只要代码正常工作,谁会在乎它的名称呢@Peter M:其他开发人员以后必须维护代码。顺便说一句:“public enum EthernetLinkSpeed”表示枚举对公共视图可见。在C和linux中,串行端口枚举使用这种前缀(有时更短):波特率命名为Bxxxxx,其中xxxxx是(整数常量)速度:B9600是9600波特率。无论如何,这个想法是一样的:一个简短的前缀,有助于识别内容。我选择这个建议作为我的特定示例的答案,但是普遍的共识似乎是某种标准前缀是必要的。
public enum EthernetLinkSpeed
{
e10BaseT,
e100BaseT,
e1000BaseT,
Disconnected
}