连接和{}之间的区别

时间:2014-04-22 22:08:41

标签: c# console.writeline

我想知道如果我把

区别的是什么

两者都引用string foo = "world";

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

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

4 个答案:

答案 0 :(得分:1)

连接只是将两个字符串放在一起。这是几乎所有编程语言中都非常常见的做法。

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

Here's a great link解释字符串格式。它使用string.Format()代替控制台,但概念仍然适用。

答案 1 :(得分:1)

两者看起来与使用string类型相似。假设你处理不同的类型。然后,您会看到ConcatenationComposite 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 );

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

答案 2 :(得分:0)

第二个选项允许您执行更复杂的格式设置。对于string,没有什么优势,但是如果您使用的是double值,则可以使用composite format options指定要显示的精度或其他选项。

答案 3 :(得分:0)

这是一种字符串格式。

Console.Write正在做的是等同于:

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

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

"Hello " + PersonName + ". I am " + PersonAge + " years old.";
相关问题