代码之家  ›  专栏  ›  技术社区  ›  desmondische

为什么使用struct来保存常量,而不是静态类?[关闭]

  •  1
  • desmondische  · 技术社区  · 11 月前

    我刚刚注意到两个struct对象, JwtHeaderParameterNames JwtRegisteredClaimNames ,其唯一目的是存储 string 常数。

    1. 为什么他们把它们做成结构而不是静态类,尽管在 namespace ?

    2. 为什么你要创建一个只包含常量或静态的结构 成员?

    谢谢

    2 回复  |  直到 11 月前
        1
  •  3
  •   Marc Gravell    11 月前

    你说得对,更地道的表达方式是 static class ; 拥有a struct 没有字段,只有这些 const 条目是 不寻常和非典型 实际上不会 伤害 什么都行,但能做有点奇怪 new JwtHeaderParameterNames() new JwtRegisteredClaimNames() ,这毫无意义。

    我有点惊讶它没有改成 静态类 在审查过程中。如果有 这是一个与此特定用法相关的好理由,我希望得到评论 in the code ( also ),但我没有看到。如果没有这一点:我们只能推测。

    有趣的是 WsTrustConstants 它的工作方式更符合我们的预期,这让它变得更加奇怪。这种奇怪之处很可能是众所周知的,但如果不做出突破性的改变,现在就无法改变。

        2
  •  1
  •   Dialecticus    11 月前

    使用类还是结构并不重要。就选一个吧。这些常量被组合在一个新的结构(或类)中,因为这种分组比将它们放置在现有的结构(或者类)中更有意义