2011-02-10 13 views
1

ここに私のアイデア私は私の.resxファイルから文字列を読んでいます C#のString.Formatのオブジェクトが

そして、ここでは、そのような文字列のサンプルです:「私は{}からこれを書いています」

私はこれらの引数に値を渡す関数を書いています。私はMyFormattedString(「NOWHERE」「resourceNameは」、)と私の関数を呼び出す場合、私は私が間違って何 を期待していものを得ることはありません文字列

public string MyFormattedString (string resourceName, object param=null) 
    { 
     string fStr= Resources.ResourceManager.GetString(resourceName); 

     fStr= string.Format(fStr, param); 

     return fStr; 
    } 

によって期待される引数の数を知らないのか?

+0

を発見したオブジェクト?あなたは実際にどのような出力を得ますか?なぜ文字列 "noWhere"で関数を呼び出すのですか?これはフォーマット項目を持たないので、置き換えるための 'String.Format'のためのものはありません。 –

+0

何を手に入れますか? –

+0

"私はこれを書いています"となり、引数の値が挿入されていません – user388377

答えて

1

リソース文字列は、数字の位置が数字の"I am writing this from {0}"である必要があります。

+0

それは問題のタイプミスでした 効果的に "私は{0}からこれを書いています" – user388377

2

私はのparamsを使用して、私の問題への解決策を見つけた[]私はちょうどあなたが何の出力を期待している

public string MyFormattedString (string resourceName, params object[] param) 
{ 
    string fStr= Resources.ResourceManager.GetString(resourceName); 

    fStr= string.Format(fStr, param); 

    return fStr; 
}