5

我已经看到了将在项目中使用的这两种常量声明方法。

  1. 公共模块中的常量。

  2. NonInheritable(Sealed) 类中的常量

有没有人使用任何其他方法来不断声明?

这些方法之间有什么区别,有什么优点和缺点吗?

谢谢。

4

3 回答 3

13

将常量放在最相关的类中 - 例如Math.PiInt32.MinValue等。

我已经看到了实际上应该是枚举的各种常量 - 特别是对于状态代码等。

我认为只为常量创建一个类(或模块)是不明智的,除非确实没有与这些常量相关联的合理类。

于 2008-12-11T12:42:08.790 回答
3

我同意@Jon。然而,对于您的应用程序所特有的常量——即它们是配置默认值、调整参数等,我有时会创建一个强类型静态配置类来保存它们。我通过仅定义公共 getter 的属性公开值。这样,它们可以从配置文件中加载,但在整个代码中作为固定值引用。

于 2008-12-11T13:15:56.257 回答
1

我的做法与 Jon 所说的相似。绝大多数枚举和常量显然都与特定的类或模块相关联,并在其中被声明为 public。

我的软件的最低级别称为实用程序,包含数学例程和其他通用实用程序的功能和方法(而不是该应用程序模式的特定实用程序)。其中有一个模块具有一堆功能,这些功能只是没有共同主题的实用功能/子例程。任何枚举或常量都在这一领域。

应用程序模型有一个类似的区域,该应用程序的通用实用程序所在的区域。并且不能与任何一类模型绑定的常量所在的位置。

所以在我的个人框架中可以找到三个常量

类声明 应用模型的通用实用模块 实用程序集的通用实用模块。

实际上,只有几十个枚举和常量中的少数需要在任一实用程序模块中声明。其中大部分是导入到我的程序集中的 Win32 函数使用的 Win32 减速。

于 2008-12-11T13:42:24.240 回答