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

Mat*_*ind 3 c# string variables

给出以下代码:

string a = "example";
string b = "blah {0}", a;
Run Code Online (Sandbox Code Playgroud)

我被引导相信使用{0}或者{1}它将把逗号之后的内容放在这个字符串中a,所以"example".字符串b应该是"blah example".当我这样做时,我得到错误"字符串a已经声明".

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

Aus*_*nen 9

我相信你打算使用string.Format.这并不暗示(但它会很好).

string b = string.Format("blah {0}", a);
Run Code Online (Sandbox Code Playgroud)

您的代码将翻译如下.完全展开时,编译器错误很明显.

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

// corresponds to ...
string a; a = "example";
string b; b = "blah {0}";
string a;
Run Code Online (Sandbox Code Playgroud)

MSDN本地变量声明


Sam*_*ica 5

在此输入图像描述

看起来你正在尝试使用String.Format

string b = String.Format("blah {0}", a);
Run Code Online (Sandbox Code Playgroud)

可以将其视为为您构建字符串的方法.有点像printfc/c ++


Eri*_* J. 5

这一行:

string b = "blah {0}", a;
Run Code Online (Sandbox Code Playgroud)

声明string b一个初始值,然后声明string a.

当您指定由逗号分隔的多个变量名时,它会将它们全部声明,例如:

string a, b, c, d;
Run Code Online (Sandbox Code Playgroud)

你可能想使用String.Format().

string b = String.Format("blah {0}", a);
Run Code Online (Sandbox Code Playgroud)