Const和Static Readonly字段值之间存在功能差异吗?

22 浏览
0 Comments

Const和Static Readonly字段值之间存在功能差异吗?

我研究了一下 conststatic readonly 字段。我们有一些只包含常量值的类。它们用于我们系统中的各种事物。所以我想知道我的观察是否正确:

这些常量值的属性应该总是为公共属性使用 static readonly,仅在内部/受保护/私有属性中使用 const

您有什么建议?我是不是应该甚至不使用 static readonly 字段,而是使用属性?

admin 更改状态以发布 2023年5月22日
0
0 Comments

如果消费者处于不同的程序集中,我会使用 static readonly。将 const 和消费者放在两个不同的程序集中是一种很好地自掘坟墓的方式

0
0 Comments

public static readonly字段有些不寻常;public static属性(只有get)可能更常见(可能由private static readonly字段支持)。

const值直接烧入调用站点;这是双刃剑:

  • 如果值在运行时获取,例如从配置文件,则无用
  • 如果更改常量的值,则需要重新构建所有客户端
  • 但它可以更快,因为它避免了方法调用...
  • ...这有时可能已经被JIT内联

如果值永远不会改变,则使用const是可以的 - Zero等合理的常量;否则,static属性更常见。

0