1

我想知道如果我把

两者都指string foo = "world";

 Console.WriteLine("Hello" + foo); //Concatenation 

 Console.WriteLine("Hello {0}", foo); //Whatever this is called (still a beginner guys)
4

4 回答 4

1

连接只是将两个字符串放在一起。这是几乎在每种编程语言中都可以找到的一种极为常见的做法。

您的第二个示例称为字符串格式。这使您可以很好地控制字符串在显示时的外观,具体取决于您使用的语言或框架。

这是一个很好的链接,可以解释字符串格式。它使用string.Format()而不是控制台,但这个概念仍然适用。

于 2014-04-22T22:11:54.190 回答
1

string当您使用类型时,两者看起来都相似。假设您处理不同的类型。Concatenation然后你会看到和之间的区别Composite Formatting

 int myInt = 2;
 Console.WriteLine("This is my int {0}", myInt);

假设现在您想在复合格式中放入更多类型:

 char  myChar = 'c';
 bool myBool = true;

 Console.WriteLine("This is my bool {0} and myChar {1}", myBool ,myChar );

但是连接是将一个字符串附加到另一个字符串末尾的过程。当您使用 + 运算符连接字符串文字或字符串常量时,编译器会创建一个字符串。不会发生运行时连接。但是,字符串变量只能在运行时连接。在这种情况下,您应该了解各种方法的性能影响。

于 2014-04-22T22:19:42.177 回答
0

第二个选项允许您进行更复杂的格式化。使用 astring几乎没有优势,但如果您使用的是double值,例如,您可以使用复合格式选项来指定要显示的精度量或其他选项。

于 2014-04-22T22:11:25.647 回答
0

这是一种字符串格式。

正在做的事情Console.Write相当于:

String.Format("Hello {0}. I am {1} years old.", PersonName, PersonAge);

与以下相比,它只是以更易于理解的方式连接字符串:

"Hello " + PersonName + ". I am " + PersonAge + " years old.";
于 2014-04-22T22:16:18.233 回答