给出以下代码:
string a = "example";
string b = "blah {0}", a;
我被引导相信使用{0}
或{1}
,它会放置逗号之后的内容,在本例中为字符串a
,因此"example"
。字符串b
应为"blah example"
。当我这样做时,我得到错误“字符串a已经声明”。
为什么我认为我在这种情况下声明了一个字符串?
答案 0 :(得分: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;
答案 1 :(得分:5)
看起来您正在尝试使用String.Format
string b = String.Format("blah {0}", a);
将其视为为您构建字符串的方法。有点像来自c / c ++的printf
答案 2 :(得分:5)
这一行:
string b = "blah {0}", a;
使用初始值声明string b
,然后声明string a
。
当您指定由逗号分隔的多个变量名时,它会将它们全部声明,例如:
string a, b, c, d;
你可能想要使用String.Format()。
string b = String.Format("blah {0}", a);
答案 3 :(得分: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);
答案 4 :(得分:2)
您只是将变量重新声明为Eric。 J说。看起来您正在尝试连接两个字符串,因此您可以使用字符串类中的Format函数:
string a = "example";
string b = string.Format("blah {0}", a);
或者您可以使用运算符+:
string a = "example";
string b = "blah " + a;
祝你好运;)。
答案 5 :(得分:1)
这就是你要找的东西:
string b = string.Format("blah {0}", a);
答案 6 :(得分:1)
string b = string.Format("blah {0}", a);