3

次のコードがあるとします。

string a = "example";
string b = "blah {0}", a;

{0}orを使用{1}すると、カンマの後にあるもの、この場合は string a、 soが配置されると信じるようになりました"example"。文字列bは である必要があります"blah example"。これを行うと、「文字列 a は既に宣言されています」というエラーが表示されます。

このコンテキストで文字列を宣言していると思うのはなぜですか?

4

7 に答える 7

9

string.Formatを使用するつもりだと思います。暗示されているわけではありません(しかし、それはいいでしょう)。

string b = string.Format("blah {0}", a);

あなたのコードは以下のように変換されます。完全に展開すると、コンパイラ エラーは明らかです。

// Given
string a = "example";
string b = "blah {0}", a;

// corresponds to ...
string a; a = "example";
string b; b = "blah {0}";
string a;

MSDN ローカル変数宣言

于 2013-03-20T18:10:43.263 に答える
5

ここに画像の説明を入力してください

String.Formatを使用しようとしているようです

string b = String.Format("blah {0}", a);

あなたのためにあなたの文字列を構築する方法としてそれを考えてください。ちょっとprintfc/c++からのように

于 2013-03-20T18:11:02.123 に答える
5

この行:

string b = "blah {0}", a;

string b初期値で宣言してから、を宣言しstring aます。

複数の変数名をコンマで区切って指定すると、それらすべてが宣言されます。例:

string a, b, c, d;

おそらくString.Format()を使用するつもりでした。

string b = String.Format("blah {0}", a);
于 2013-03-20T18:11:11.293 に答える
2

再宣言してaいます。

および他の多くの言語ではc#、コンマ区切り文字を使用して変数を宣言するのは簡単です。

例:

int x,y,z; // declare three integer variables x y and z

あなたが使用する必要がありますString.Format

string a = "example";        
string b = string.Format("blah {0}", a);
于 2013-03-20T18:11:44.337 に答える
2

変数を Eric として再宣言しているだけです。Jは言った。2 つの文字列を接続しようとしているように見えるので、文字列クラスから Format 関数を使用できます。

string a = "example";
string b = string.Format("blah {0}", a);

または、演算子 + を使用できます。

string a = "example";
string b = "blah " + a;

幸運を ;)。

于 2013-03-20T18:40:34.270 に答える
1

string b = string.Format("blah {0}", a);

于 2013-03-20T18:11:36.043 に答える
1

これはあなたが探しているものです:

string b = string.Format("blah {0}", a);
于 2013-03-20T18:10:47.007 に答える