c# - 具有单个值的枚举是否合适?

标签 c# enums

这是一个非常简单的问题,但我真的很想知道什么是好的做法。

我有一个包含日志子系统的系统。日志包含有关用户 ID 的信息。简化的日志记录是这样的:

log.RegisterEvent(eventType, userID, eventDetails);

有些事件是系统事件,它们没有关联用户 ID。由于用户 ID 是正整数,我认为 0 表示该事件不涉及用户:

log.RegisterEvent(eventType, 0, eventDetails);

但是把 0 放在那里只是……不对。我想到了使用枚举,例如:

enum UserID
{
    None = 0
}

但是只有一个值的枚举可以吗? 最好使用静态常量? 或者这是另一种更好的方法?

最佳答案

“用户 ID”对我来说听起来不像是一种自然的枚举。这不像是在全局范围内存在一组自然有限的用户。

一个常量值会更有意义:

const long UnknownUserId = 0;

情况下,具有单个值的枚举是有意义的,但它几乎总是用于 future 的扩展。

关于c# - 具有单个值的枚举是否合适?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11861988/

相关文章:

c# - 如何显示枚举显示属性的名称

c# - 如何检查 FtpWebRequest 是否有错误

c# - 为什么我不能有对象的类型约束

c# - 事件/委托(delegate)字段的 DataContractSerializer 问题

Python,Enum 类型有什么用?

强制定义枚举类型的 Java 接口(interface)

c# - 无法创建 SSL/TLS 安全通道适用于 winforms 但不适用于 asp.net

c# - 无法连接到 LDAP "Invalid DN Syntax"

java - ENUM : EL1043E: Unexpected token. 中的 Thymeleaf 下拉菜单预期为 'rparen())' 但实际为 'lparen(()'

swift - 为什么此 Switch 语句需要 'Switch Value' 和 'Compound case' 的括号?