我已经看到了这两种用于项目的常量声明方法。
公共模块中的常量。
NonInheritable(密封)类中的常量
是否有人使用任何其他方法进行常量声明?
这些方法之间有什么区别,有什么优点和缺点吗?
感谢。
答案 0 :(得分:13)
将常数放在最相关的类中 - 例如Math.Pi
,Int32.MinValue
等。
我已经看到了各种常量,这些常量实际上也应该是枚举 - 特别是对于状态代码等。
我不认为为常量创建一个类(或模块)是明智的,除非确实没有与这些常量相关的合理类。
答案 1 :(得分:3)
我同意@Jon。但是,对于应用程序独有的常量 - 即,它们是配置默认值,调整参数等,我有时会创建一个强类型的静态配置类来保存它们。我通过属性公开值,只定义了公共getter。这样,它们可以从配置文件加载,但在整个代码中作为固定值引用。
答案 2 :(得分:1)
我的做法与Jon所说的相似。绝大多数的枚举和常量明显与特定的类或模块相关联,并在那里被公开。
我软件的最低级别称为Utility,包含数学例程和其他一般实用程序的功能和方法(而不是该应用程序模式的特定实用程序)。在一个模块中有一堆函数,它只是没有共同主题的实用函数/子程序。这是一个领域,任何枚举或常数去。
应用程序模型有一个类似的区域,该应用程序通常使用的实用程序。而那些不能与MODEL的任何一类相关的常数都会出现。
因此,在我的个人框架中可以找到三个常量
的区域类声明 应用程序模型的通用实用程序模块 公用设施组件的通用实用模块。
实际上,在任一实用程序模块中只需要在几十个枚举和常量中少量声明。其中大部分是Win32函数使用的Win32减速,它们被导入到我的程序集中。