我有一个 Constants 类,其中存储了许多静态只读变量。
我应该这样做吗:
private static readonly int _maxThings = 100;
...
public static int MaxThings { get { return _maxThings; } }
这对我来说似乎有点多余。我有什么理由不执行以下操作吗?
public static int MaxThings { get { return 100; } }
编辑
好吧,这是一个脑残问题。我认为重点是,如果我要在初始化时设置这个值,那么使用静态支持字段并公开一个不需要本身是静态的公共(public)仅获取属性是有意义的。
但是,如果我愿意将公共(public)静态属性设置为硬值,那么这与将其烘焙到程序集中没有功能差异。除非我在这里遗漏了一些其他概念,否则在这种情况下我只会使用 const。
感谢您的回答。
最佳答案
你应该这样做
public const int MaxThings = 100;
在这种情况下我没有理由使用属性。
更新->
回应评论..如果您正在开发库并导出常量,那么了解常量如何在 .net 中使用非常重要。当针对您的库进行编译时,常量值将被内联并包含在消费应用程序中,这样,如果您的库已更新而消费应用程序未更新,则旧的常量值仍将存在。当然,这是应该使用静态属性的时候。
如果您不开发库,那么使用 const 就可以了。
关于c# - Constants 类中的静态属性是否应该实现支持字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3349146/