【发布时间】:2019-08-02 09:28:45
【问题描述】:
我知道 enums 可以有 重叠 值,因为最终枚举只是 ints 并且多个 事物 可以有 相同int。对我来说(也许这是需要澄清的一点),这意味着共享相同 int 的那 2+ 个事物在所有意图和目的上都是相同的。
那么问题来了:
- AddressFamily 的枚举让多个协议共享相同的枚举值意味着什么?例如,NS 和 Ipx 都是 6,但 NS 是“Xerox NS 协议的地址”,而 Ipx 是“IPX 或 SPX 地址”。 Iso 和 Osi 也共享相同的值 (7),但分别具有“ISO 协议地址”和“OSI 协议地址”的含义。
半相关问题:Enums, overlapping values, C#
- 这似乎并没有真正给出关于为什么重叠枚举好的结论性答案
- 也没有给出关于在实践中具有重叠枚举值的真正含义的结论性答案。
【问题讨论】:
-
您的问题是为什么 C#
enums 可以具有相同的值,或者为什么特定示例可以具有相同的值?也许在AddressFamily示例中,某些值是相同的,因为归根结底它们只是同一枚硬币的两个面? -
@MickyD 更多的是关于特定示例的原因。我分享了共享枚举值的背景,这样人们就不会开始重新回答这个问题,同时也认识到我的基本理解可能在某种程度上是错误的,导致我的困惑有一个简单的澄清。不过,情况似乎并非如此。
-
没问题的好先生。我已经有一段时间没有听到“IPX”了。我第一次玩局域网游戏的美好回忆:D
-
@MickyD good *ma'am :)