【问题标题】:Best place to store saved messages存储已保存消息的最佳位置
【发布时间】:2014-06-09 09:44:59
【问题描述】:

我目前正在创建一个控制台应用程序,它只接受我定义的一些命令。问题是我在我创建的名为 Messages 的静态类上存储了很多错误和通知消息,然后像 Messages.ErrorMessage 一样调用它们。ErrorMessage 只是一个静态字符串,包含我想要打印的 w/e控制台。 我想问的是,这是否是实现此类行为的好方法,还是我应该更改保存所有这些消息的位置?

感谢您的帮助!

【问题讨论】:

  • 静态类实际上总是不好的行为。这样的设计往往容易出错并且有很多副作用。您可以将消息存储在专用类中。您创建该类的一个实例,并将其用作通过整个程序传递的参数。 Singleton 实例在许多设计模式书籍中被视为反模式。
  • 如果我理解正确,您需要一个资源文件:stackoverflow.com/q/90697/7586

标签: c# class console-application


【解决方案1】:

我猜你可以使用资源文件代替静态类。

官方网站上的记录

Visual C# 应用程序通常包含非源代码的数据。 此类数据被称为项目资源,它可以包括 二进制数据、文本文件、音频或视频文件、字符串表、图标、 图像、XML 文件或任何其他类型的数据,您的应用程序 需要。项目资源数据以 XML 格式存储在 .resx 中 可以在解决方案中打开的文件(默认名为 Resources.resx) 探险家。

更多信息:-

http://msdn.microsoft.com/en-us/library/7k989cfy(v=VS.90).aspx

【讨论】:

  • 到目前为止,我被告知要么使用资源文件,要么只创建一个常规类来处理消息......最好的方法是什么?
  • 我会尝试资源文件...感谢您的快速回复,祝您有愉快的一天:)
  • 我很高兴它有帮助,我个人将资源文件用于此类场景..与你一样@AlonsoQuesada :)
【解决方案2】:

正如其他人所建议的,将它们存储在资源文件中是处理此类资源的推荐方法,尤其是在您需要处理国际化的情况下。然后您可以在运行时使用正确的信息从附属程序集加载不同的资源文件。

您会注意到在资源字典中查找字符串时性能会受到轻微影响,但通常可以忽略不计。

【讨论】:

  • 到目前为止,我被告知要么使用资源文件,要么只创建一个常规类来处理消息......最好的方法是什么?
  • 资源文件是 IMO 的最佳方法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-02
  • 1970-01-01
  • 1970-01-01
  • 2011-05-15
  • 1970-01-01
相关资源
最近更新 更多