C#:如何构造字符串

时间:2010-05-06 06:19:05

标签: c# string casting

其中哪些将达到正确的结果:

(1)

int X = 23;
string str = "HELLO" + X.ToString() + "WORLD";

(2)

int X = 23;
string str = "HELLO" + X + "WORLD";

(3)

int X = 23;
string str = "HELLO" + (string)X + "WORLD";

编辑:“正确”结果是str评估为:HELLO23WORLD

3 个答案:

答案 0 :(得分:7)

int X = 23;
string str = string.Format("HELLO{0}WORLD", X);

答案 1 :(得分:4)

选项3无法编译,因为您无法将int强制转换为string

另外两个产生相同的结果。但是,有一个微妙的区别。

在内部,加号运算符编译为对String.Concat的调用。 Concat有不同的重载。选项1调用Concat(string, string, string),而选项2调用Concat(object, object, object)两个字符串和一个盒装int。在内部Concat然后在盒装int上调用ToString

另外,请检查此相关问题:Strings and ints, implicit and explicit

答案 2 :(得分:1)

你也可以使用StringBuilder:

System.Text.StringBuilder str = new System.Text.StringBuilder();
str.Append("HELLO"); 
str.Append(X); 
str.Append("World");