给定以下代码:
string a = "example";
string b = "blah {0}", a;
我被引导相信使用{0}
or {1}
,它会在逗号之后放置任何内容,在这种情况下为 string a
, so "example"
。字符串b
应该是"blah example"
. 当我这样做时,我收到错误“字符串 a 已声明”。
为什么它认为我在这种情况下声明了一个字符串?
我相信您打算使用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;
这一行:
string b = "blah {0}", a;
用初始值声明string b
,然后声明string a
.
当您指定以逗号分隔的多个变量名称时,它会全部声明它们,例如:
string a, b, c, d;
您可能打算使用 String.Format()。
string b = String.Format("blah {0}", a);
您正在重新声明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);
您只是将变量重新声明为 Eric。J说。看起来您正在尝试连接两个字符串,因此您可以使用字符串类中的 Format 函数:
string a = "example";
string b = string.Format("blah {0}", a);
或者您可以使用运算符 +:
string a = "example";
string b = "blah " + a;
祝你好运 ;)。
这就是你要找的:
string b = string.Format("blah {0}", a);
string b = string.Format("blah {0}", a);