• ベストアンサー

C#で文字列リソースを扱う

引数でファイル名を絶対パスで読みこんで処理をする、というコンソールアプリを作成しています。 エラーメッセージなどをリソースで管理しているのですが、内容を動的に変更したいとき、どうすればよいのかわからず、困っています。 (たとえば、こういう感じです。) リソース登録された文字列 "指定されたファイル'{1}'はありません。"           ↑  ここに引数で受け取ったファイル名を入れたい。 このようなリソースの作成方法や、呼び出し方法を、どなたかご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • UKY
  • ベストアンサー率50% (604/1207)
回答No.1

たとえば、 string name = "C:\foo.bar"; string s = string.Format("指定されたファイル'{1}'はありません。", name); とやると、s に "指定されたファイル'C:\foo.bar'はありません。" という文字列が得られます。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • UKY
  • ベストアンサー率50% (604/1207)
回答No.3

失礼しました。BLUEPIXY さんの言うとおり、'{1}' ではなくて '{0}' です。 (コピー & ペーストしたとき気付きませんでした……)

すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>エラーメッセージなどをリソースで管理している 既に管理されているなら >リソースの作成方法や、呼び出し方法 は、わかっているのでは? >"指定されたファイル'{1}'はありません。" >          ↑ >ここに引数で受け取ったファイル名を入れたい。 は、#1で言われているように (そういう形式の文字列が取り出せているなら) String.Format を使うといいと思います。 {0} かな?って思いますけど。 こうした単純なメッセージなんかのリソース作成は、 resgen ツールを使うとtxt からresX ファイルが簡単に作成できます。 (もちろん、リソースを扱うクラスからでも作成できますが) 呼び出しは、ResouceManager クラスを使うのが簡単です。

すると、全ての回答が全文表示されます。

関連するQ&A