2010-04-29 39 views
2

如何管理项目中的符号常量?你在哪里声明解决方案范围常量?C#:你如何管理项目中的符号常量?你在哪里声明解决方案范围常量?

+1

千万不要使用公共常量,它们会被IL中的文字取代。使用公共只读变量。 – 2010-04-29 12:38:25

+0

@Hans:非常好,谢谢你,但请你告诉我,我怎么能看到这一点呢? – odiseh 2010-04-29 12:49:28

+1

您可以使用ildasm.exe – 2010-04-29 12:53:26

回答

4

我们有一个常量类,我们把所有的常量放进去。我们声明它是静态的,然后使常量静态为公共的,因为不需要实例化它。

+1

'public static const'或'public static readonly'查看生成的IL,我希望。 – tvanfosson 2010-04-29 11:49:30

+0

是的,我也应该这样做。 – kemiller2002 2010-04-29 11:51:18

4

对于这样的常量和领域模型核心的一些预先存在的类之间没有明显的关系,我很少会(至少对我而言) - 我只是将它们添加到那里。然后常量被限定在模型的适当部分,而不仅仅是在“常量”类中。

当然,我也发现很难找到真正的“常量”;通过配置选项可以更好地描述许多有趣的“常量”。

+1

完全是我的想法。常量,如果我有它们,通常只有意义 - 或者至少在一个类中最有效地使用。全局使用的值几乎总是配置项,即它们在设置后保持不变,但最好在配置文件中定义。 – tvanfosson 2010-04-29 11:52:33

+1

@tvanfosson - 我也发现不止一次,即使我的“全球选项”很快成为注入选项,不同的使用案例使用不同的全球选项。多租户是最明显的例子。 – 2010-04-29 11:56:06

+0

我假设这些缓存在某个全局字典中,或者每次都从持久化介质中检索它们? – tvanfosson 2010-04-29 12:01:12