2

この質問は本当に理解するのが難しくありません。私はいつもこれを疑問に思っており、可能であればどうすればできるのか疑問に思っていました. 可能であれば、これは私がやりたいことです:

    int number = 50;
    string text = "The number is %number";

上記で%numberと書いたところでstring、 の値をnumberに挿入しstringたいと思います。通常、このようなことを行う方法は次のようになるからです。

    int number = 50;
    string text = "The number is " + number.ToString();

はい、上記に統合numberした方法は問題ありませんが、私が書いた最初の例のようなことをstring行うことは可能でしょうか?の値を含む a の結果を取得するには、何らかのタイプのor ( を参照するために使用される) を の名前とともにaに書き込む必要がありますか? または、このようなことができることはありますか?objectstringcharacterstringobjectobjectstringstringobject

4

2 に答える 2

5

使用しますstring.Format

string text = string.Format("The number is {0}", number);

すべてのオブジェクトにはメソッドがあることに注意してくださいToString。これは、すべてのオブジェクトを への引数として使用できることを意味しますがstring.Format、 からのデフォルトの応答ToStringは型の完全な名前を返すことであり、あまり意味がないかもしれません。

たとえば、これは次のとおりです。

public class Dummy
{
}

var d = new Dummy();
string text = string.Format("The dummy is {0}", d);

次のような値を に割り当てますtext

"The dummy is Your.Namespace.Dummy";

次の 2 つのオプションがあります。

  1. ToString新しい型にとって意味のあるものをオーバーライドして返します
  2. 代わりに、プロパティまたは何かを読み取ります。たとえば、次のようになります。

    string text = string.Format("The dummy is {0}", d.SomeProperty);
    

string.Formatまた、複数の引数を取ることができることに注意してください。

int a = 10;
int b = 20;
int c = a + b;
string text = string.Format("{0} + {1} = {2}", a, b, c);

ここに示した以外にも多くのことがありstring.Formatます。詳細については、ドキュメントへのリンク (この回答の最初の行) をクリックしてください。

于 2013-03-02T19:18:17.043 に答える
0

おそらくチェックする必要があります Sting.Format

string text = String.Format("The number1 is {0},number2 is {1}", number1, number2);

String.Format vs string concatenation を使用する方が良い場合について、この議論を確認することも価値があります。`

于 2013-03-02T19:19:28.863 に答える