已将常量变量更改为静态变量

本文关键字:变量 静态 常量 | 更新日期: 2023-09-27 18:28:57

我在项目中添加了一些常量。

private const int refercePosition = 0.3;

我将常量转移到我的项目的设置文件(即App.config)中,并在我的项目中使用.

private static int refPos = Properties.Settings.Default.referencePosition;

将变量标记为静态而非常量是一种好的做法吗
在我的项目中大约有10个其他常量,我也做了同样的事情。

顺便说一句,既然App.config变量在运行时是可配置的,但将变量声明为静态会破坏这一目的吗?

已将常量变量更改为静态变量

它不是一个替代品,因为现在refPos可以在运行时修改。如果这是你的目的,那很好,否则

private static readonly int refPos = Properties.Settings.Default.referencePosition;

使refPos在运行时只读。更接近CCD_ 3的性质。

您可能还想看看singleton模式。

主要区别在于,const不能在运行时更改,但静态属性可以由应用程序在运行时进行更改。因此,如果值从未改变,它可以是一个常量。。。

常量本质上是静态的,因此在无法再将值声明为运行时常量的情况下,从const转换为static readonly并不罕见。还要注意,在运行时期间只能更改User范围内的设置。如果这些设置是Application范围内的,则不会有什么区别。如果您要使用User范围的设置,我建议您在代码中直接使用它们,因为正如您所说,它们可以在运行时更改。

当静态而不是常量时
当值不太可能更改时,或者如果没有外部应用程序/libs将使用常量,则应使用常量。当需要运行时计算时,或者如果外部使用者是一个因素,则应使用静态只读字段。