【问题标题】:Best way to store bunch of constant values in .NET [closed]在.NET中存储一堆常量值的最佳方法[关闭]
【发布时间】:2014-04-11 02:25:51
【问题描述】:

这基本上是一个设计问题:

我正在用 C# 重写一个应用程序,它基本上是用 C++ 编写的。 C++ 有一个很好的头文件概念,它将为消费文件提供大量声明的常量值。

但是,我们在 C# 中没有头文件。我可能有两个选择

  1. 创建一个可以为我保存大量常量值的类(不那么标准)
  2. 在 XML 中存储值(标准 - 但涉及很多解析麻烦)

哪个是更好的解决方案?还有其他我可能不知道的解决方案吗?

【问题讨论】:

  • 我看不出在 C# 中使用 const 值有什么“不那么标准”——这与你所能得到的 C++ 版本差不多。使用 LINQ to XML 进行 XML 解析并不是“很麻烦”……它真的非常简单。这些真的是常数,还是可能随着时间而改变?如果它们是真正的常量,我看不出 XML 有什么帮助。
  • 因为它们都在 c++ 中的 .H 文件中。更有可能它们都是真正的常数。
  • 更不用说,如果您的代码如此喜欢到处使用常量,您可能需要重新考虑您的设计。除非您正在处理科学数据等。
  • 你具体说的是什么价值观?
  • @Californicated: 是的,那么你反对在 C# 中使用 const 是什么?这似乎是一个明显的相似之处……诚然,如果您可以将它们放在适当的类(与值相关联)中,那就更好了。

标签: c# c++ xml header storage


【解决方案1】:

我个人会使用static 类并将所有值放在那里。

public static class Constants
{
   public const int Ten = 10;
   public const int Twenty = 20;
   ....
}

编辑

正如@JonSkeet 建议的那样,最好将这些值存储在它们所属的类中,但是,这可能并不总是可行的。

【讨论】:

  • 好的。我不太确定使用类来保存值是否是一个好主意。只需要确认:)
  • @Californicated:除非必须,否则不要使用特定的类 - 如果它们自然适合其他类,那就更好......但有时它不会那样做。
  • 如果您存储的内容都是字符串,那么请考虑使用 .resx 文件。这些旨在保存字符串“常量”,但提供更大的灵活性,例如切换到其他语言或文化的能力。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-15
  • 2021-02-11
  • 1970-01-01
  • 1970-01-01
  • 2012-10-16
  • 2021-10-29
  • 2020-08-10
相关资源
最近更新 更多