管理不同项目中的常量

时间:2014-01-16 14:13:45

标签: c# architecture global-variables constants

我有一个C#应用程序,包含产品核心和每个客户项目的不同特殊情况。 我需要一种方法来处理和管理全局常量(中心点的所有内容)并提出以下解决方案:

在项目“核心”中:

public abstract class Config
{
   //Core values, which are always needed
   public const string Value1 = "abc";
   ...
}

在特定项目“SpecialProject1”(引用Core)中:

public abstract class SpecialConfig : Config
{
   //additional extra values for this special case
   public const string Value2 = "xyz";
   ...
}

这样我可以从我的Core Config类继承,并避免有人意外创建我的Config类的实例(它们没有状态,只有固定值)。

有更好的方法吗?在这种情况下使用“抽象”是否有问题?

1 个答案:

答案 0 :(得分:2)

抽象类的Instread使用静态类:

public static class Config
{
   //Core values, which are always needed
   public const string Value1 = "abc";
   ...
}

并将您的变量称为Config.Value1,而不是继承自该类。由于C#只允许你从一个基类继承,强制使用不必要地继承是不是一个好主意。

此外,静态类永远不会被实例化,因此您不必担心人们创建它的实例。

在“SpecialProject1”中有一个仅与该项目的配置相关的配置类,因此您可以保持核心配置和项目配置分离。