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