在项目中声明常量

时间:2008-12-11 12:40:03

标签: .net constants

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

  1. 公共模块中的常量。

  2. NonInheritable(密封)类中的常量

  3. 是否有人使用任何其他方法进行常量声明?

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

    感谢。

3 个答案:

答案 0 :(得分:13)

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

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

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

答案 1 :(得分:3)

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

答案 2 :(得分:1)

我的做法与Jon所说的相似。绝大多数的枚举和常量明显与特定的类或模块相关联,并在那里被公开。

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

应用程序模型有一个类似的区域,该应用程序通常使用的实用程序。而那些不能与MODEL的任何一类相关的常数都会出现。

因此,在我的个人框架中可以找到三个常量

的区域

类声明 应用程序模型的通用实用程序模块 公用设施组件的通用实用模块。

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