资源(.resx)文件的好处是什么?

89
什么令人信服的理由可以使用它们?

11
如果你以前从未使用过resx文件,但有自己的字符串表或类似的内容(或者更糟的是,在代码中分散定义的字符串),并且没有看到改变这种方法的理由,那么这是一个合法的问题。 - mmr
11
我以前从未使用过resx。这就是提问的原因。 - Newbie
5个回答

96
  • 资源文件为您的.NET应用程序提供了一种简单的本地化/国际化方式,它会根据用户的区域设置自动确定使用哪个语言的resx文件。要添加更多语言,只需添加另一个翻译好的资源文件。

  • 资源文件为您提供了一个中心位置来存储您的字符串、文件和脚本,并以强类型的方式引用它们(如果引用不正确,编译将会中断)。

  • 资源文件可以被编译成卫星程序集,这使得在生产应用程序中更改资源变得容易,而不必重新编译整个程序。


34
作为对其他答案的补充,字符串资源是用于人可读的文本,而不是将作为常量在编程中使用的内容。它们非常适合用于错误消息、按钮标签等。
很多时候,我们存储格式化字符串而不是最终字符串,以便在最后一刻可以替换变量。这种方法的好处是,与连接不同,当语言具有不同的词序要求时,它不会被破坏。

1
确实值得点赞!尽管仍然存在困难;例如,在英语中有“one”和“many”,而在斯洛文尼亚语中有“one”、“few”和“many”。 - Cornelius
1
每次有人引用格式化字符串以进行日志记录时,都会发生令人讨厌的重定向到单独的“res”文件。 - Jmoney38

14

资源文件可以让你在不修改程序代码的情况下更改程序中显示的文本/图形。出于许多原因,通常最好避免需要编辑程序源代码以进行与应用逻辑无关的更改。


13

使用resx文件,您可以每种语言(即口头交流的语言,而不是编程语言)拥有一个文件,使您的程序/系统可以实现多语言功能。


15
是的 - 世界并不仅仅只使用英语! - marc_s
有没有关于如何做到这一点的简单示例教程? - KansaiRobot
@KansaiRobot 希望您会发现这篇博客有所帮助 - .NET 中的卫星程序集 - RBT

4
除了上面的答案,资源文件还可以为您提供一个存储测试文件以执行读/写测试的地方。这样,无论其他人的环境如何设置,您都可以有一个存储日志或其他文件的位置。
请记住,您放置在资源中的文件必须是可序列化的。有关更多信息,请查看下面:

https://msdn.microsoft.com/en-us/library/f45fce5x(v=vs.80).aspx


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接