V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
drymonfidelia
V2EX  ›  程序员

枚举类型允许为 null 还是定义一个 None 为枚举值更方便维护?这两种方案在实际场景中效果是一致的吗?存入数据库的话 nullable 似乎会占用更大的空间,哪个查询效率更高?

  •  
  •   drymonfidelia · 2 小时 10 分钟前 · 106 次点击
    3 条回复    2024-12-19 02:41:18 +08:00
    nikenidage1
        1
    nikenidage1  
       1 小时 45 分钟前
    那个啥,你得先说语言,很多语言的枚举类型就不允许为 null
    drymonfidelia
        2
    drymonfidelia  
    OP
       1 小时 38 分钟前
    @nikenidage1 我用过的几个语言好像都可以为 null ,像 C#
    geelaw
        3
    geelaw  
       55 分钟前 via iPhone
    @drymonfidelia #2 那你可能要精进一下 C#,在 C# 里面枚举的取值范围就是底层整数类型的范围,所以不存在 null 。

    设 T : struct, Enum 那么 T? 即 Nullable<T> 当然可以取 null ,另外 obejct 、ValueType 、IComparable 、IConvertible 、IFormattable 、ISpanFormattable 类型的变量都可以用来存储 boxed enum 的引用或 null 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1041 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 19:36 · PVG 03:36 · LAX 11:36 · JFK 14:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.