我已经读了conststatic readonly字段。我们有一些仅包含常数值的类。它们用于我们系统周围的各种事情。所以我想知道我的观察是否正确:

这些恒定的价值观应该永远是static readonly对于公开的一切?并且只使用const对于内部/受保护/私人价值?

你有什么建议吗?我是否应该不使用static readonly字段,而是使用属性?

答案

public static readonly场有点不寻常。public static属性(只有一个get)会更普遍(也许是由private static readonly场地)。

const值直接燃烧到呼叫站点中;这是双重的:

  • 如果该值在运行时获取,则可能是没有用的
  • 如果您更改const的价值,则需要重建所有客户
  • 但是它可以更快,因为它避免了方法调用…
  • …无论如何,这有时可能已被JIT绑架

如果值将never 更改,然后const很好 - Zero等等,除此之外,static属性更常见。

来自: stackoverflow.com