我有一些在多个类中需要的常量字符串。如何以符合以下要求的标准存储和检索这些常量:我在哪里可以将共享常量放在C#应用程序中?
- 没有重复信息。
- 没有函数调用来检索常量。
- 之前不断没有命名空间符号(IE:
Constant
不Namespace.Constant
)我发现到目前为止,满足每一个标准的解决方案
无:
- 复制他们在每个班级,他们需要(违反标准#1)。
- 将它们存储在一个独立的静态类中,该静态类在需要时被引用(有点像C风格的头文件,违反标准#3)。
- 将它们放入其中一个使用它们的类中,并在其他地方需要时引用该类(这似乎是一个坏主意,因为它可能会创建循环引用,并且违反标准#3)。
- 将它们放在app.config中,并在需要时检索它们(这似乎违反了风格约定,因为非配置数据存储在配置文件中,并且对配置文件的更改可能会破坏应用程序逻辑。标准#2)。
C#中是否存在符合每个标准的解决方案?
选项#2需要多余的代码的任何地方常量,则需要('StaticClass.Constant'而不只是'Constant')。有没有办法解决这个问题? – slbelden
@slbelden如果你使用的是C#6(VS 2014或更新版本),那么是的。你可以在你的文件的顶部使用静态的YourNamespace.StaticClass。然后它使得'StaticClass'的所有静态成员的行为就好像它们处于该文件的范围内一样。 –
欢迎来到OOP;)当然有两种使用方法。在#1中分配#2的值。我也更喜欢#2,但它主要是基于意见的...... –