C#说我在不打算时声明变量

时间:2013-03-20 18:09:04

标签: c# string variables

给出以下代码:

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

我被引导相信使用{0}{1},它会放置逗号之后的内容,在本例中为字符串a,因此"example"。字符串b应为"blah example"。当我这样做时,我得到错误“字符串a已经声明”。

为什么我认为我在这种情况下声明了一个字符串?

7 个答案:

答案 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;

MSDN Local variable declaration

答案 1 :(得分:5)

enter image description here

看起来您正在尝试使用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);