【发布时间】:2010-11-11 03:58:20
【问题描述】:
使用它们有什么令人信服的理由?
【问题讨论】:
-
如果您以前从未使用过 resx 文件,但有自己的字符串表等(或者更糟糕的是,字符串分散在整个代码中,全部在本地定义)并且没有找到理由改变这种方法,那么这是一个合法的问题。
-
我以前从未使用过 resx。这就是问题背后的原因。
使用它们有什么令人信服的理由?
【问题讨论】:
资源文件为您提供了一种简单的方法来本地化/国际化您的 .net 应用程序,方法是根据用户的区域设置自动确定要使用的语言 resx 文件。要添加更多语言,只需添加另一个已翻译的资源文件。
资源文件为您提供了一个存储字符串、文件和脚本的中心位置,并以强类型的方式引用它们(因此,如果您不正确地引用它们,编译将会中断)。
李>可以将资源文件编译成附属程序集,从而轻松更改生产应用程序中的资源,而无需重新编译整个内容。
【讨论】:
作为对其他答案的补充,字符串资源用于人类可读的文本,而不是用于以编程方式使用的常量。它们非常适合用于错误消息、按钮标签等。
很多时候,我们存储格式字符串而不是最终字符串,以便在最后时刻替换变量。这种方法的好处在于,与串联不同,当一种语言有不同的词序要求时,它不会被破坏。
【讨论】:
资源文件使您能够更改程序将显示的文本/图形,而无需编辑程序本身的代码。出于多种原因,通常认为最好避免需要编辑程序的源代码以进行不属于应用程序逻辑的更改。
【讨论】:
使用 resx,您可以为每种语言(即口语而不是编程语言)使用一种语言,从而使您的程序/系统成为多语言。
【讨论】:
除了上面的答案之外,资源文件还可以为您提供一个存储测试文件的地方,以便执行读/写测试。这样,无论其他人的环境如何设置,您都可以有一个地方来存储日志或其他文件。
请记住,您在资源中放置的文件必须是可序列化的。查看下方了解更多信息:
https://msdn.microsoft.com/en-us/library/f45fce5x(v=vs.80).aspx
【讨论】: