我已经读了const
和static readonly
字段。我们有一些仅包含常数值的类。它们用于我们系统周围的各种事情。所以我想知道我的观察是否正确:
这些恒定的价值观应该永远是static readonly
对于公开的一切?并且只使用const
对于内部/受保护/私人价值?
你有什么建议吗?我是否应该不使用static readonly
字段,而是使用属性?
答案
public static readonly
场有点不寻常。public static
属性(只有一个get
)会更普遍(也许是由private static readonly
场地)。
const
值直接燃烧到呼叫站点中;这是双重的:
- 如果该值在运行时获取,则可能是没有用的
- 如果您更改const的价值,则需要重建所有客户
- 但是它可以更快,因为它避免了方法调用…
- …无论如何,这有时可能已被JIT绑架
如果值将never 更改,然后const很好 - Zero
等等,除此之外,static
属性更常见。