2009-07-15 45 views
60

使用它們有什麼令人信服的理由?資源(.resx)文件的好處是什麼?

+6

如果你從未使用過RESX文件,但有自己的字符串表等等(散落在代碼或者更糟,字符串,所有本地定義)和避風港沒有看到改變這種方法的理由,那麼這是一個合法的問題。 – mmr 2009-07-15 21:03:35

+5

我以前從未使用過resx。這就是問題背後的原因。 – Newbie 2009-07-16 14:50:05

回答

66
  • 資源文件給你一個簡單的方法來定位/自動確定使用基於用戶所在的區域,其語言的resx文件國際化您的.NET應用程序。要添加更多語言,只需添加另一個已翻譯的資源文件。

  • 資源文件給你一箇中央位置來存儲您的字符串,文件和腳本,並指他們在一個強類型的方式(因此,如果使用不正確的引用它們的編譯將打破)。

  • 資源文件可以被編譯成附屬程序集,這樣就可以輕鬆地更改生產應用程序中的資源,而無需重新編譯整個文件。

12

使用resx,您可以爲每種語言(即口頭語言而非編程語言)提供一種語言,使您的程序/系統成爲多種語言。

+10

是的 - 世界是*不*只是說英語! – 2009-07-15 21:06:19

+13

@marc_s:什麼?這簡直是​​愚蠢的談話。 – Randolpho 2009-07-15 21:08:21

+0

任何教程如何用一個簡單的例子做到這一點? – KansaiRobot 2018-02-06 05:06:25

21

爲補充其他的答案,我已經upvoted,我想補充一點,字符串資源是將在編程中使用人類可讀的文本,而不是常量。它們非常適合錯誤消息,按鈕標籤等。

很多時候,而不是最後一個字符串,我們存儲一個格式化字符串,以便在最後時刻替換變量。這種方法的好處在於,與串聯不同,當語言具有不同的字順序要求時,它不會被破壞。

+2

+1爲了確保使用格式字符串 – 2009-07-15 21:12:35

+1

+1!雖然有龍仍然;例如其中英語具有「一」和「多」,斯洛文尼亞語例如有「一」,「少」和「多」。 – Cornelius 2016-01-15 12:36:06

+0

這是一個惱人的重定向到一個單獨的「res」文件,每次有人引用格式化的字符串進行日誌記錄。 – Jmoney38 2017-02-15 16:31:30

11

資源文件使您能夠更改程序將顯示的文本/圖形,而無需編輯程序本身的代碼。出於許多原因,通常認爲避免編輯程序的源代碼以進行不屬於應用程序邏輯的更改是理想的。

1

除了上面的答案之外,資源文件還可以爲您提供一個位置來存儲用於執行讀/寫測試的測試文件。這樣,無論其他人的環境如何設置,您都可以有一個地方來存儲日誌或其他文件。

請記住,您在資源中放置的文件必須是可序列化的。下面檢查的詳細信息:

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