如何使用 Console.WriteLine 将整数添加到字符串?

How do I add an integer to a string using Console.WriteLine?

我目前正在用 C# 编写程序,并且正在练习使用整数。我正在努力做到这一点,所以书面的行最后会出现 int 。它没有给我想要的结果,当我在 Google 上搜索时,它没有给我想要的解决方案。

代码:

Random rnd = new Random();
int Pi = rnd.Next(1,5); 

Console.WriteLine("Checking 'Pi' value...");
Console.Beep(37,1000);
Console.WriteLine("Pi value found. Pi = ",Pi);
Console.ReadKey(); 

结果:

Checking 'Pi' value...
Pi value found. Pi =

如果你知道我可以尝试什么,请告诉我。

Console.WriteLine("Pi Value found. Pi =" + Pi);

多种方法可以做到这一点:

// placeholder
Console.WriteLine("Pi value found. Pi = {0}",Pi);

// concatenation
Console.WriteLine("Pi value found. Pi = " + Pi.ToString());

// interpolation
Console.WriteLine($"Pi value found. Pi = {Pi}");

// StringBuilder
var sb = new StringBuilder("Pi value found. Pi = ").Append(Pi);
Console.WriteLine(sb);

// multiple writes
Console.Write("Pi value found. Pi = ");
Console.WriteLine(Pi);

有多种方法可以做到这一点。

  1. Console.WriteLine("Pi Value found. Pi = " + Pi);,这是 Console.WriteLine("Pi Value found. Pi = " + Pi.ToString());.
  2. 的缩写形式

之所以有效,是因为运算符喜欢 + 根据您使用它们的方式做不同的事情。 C# 自动将 ToString() 添加到您的整数,并将其转换为字符串。这意味着您实际传递给 Console.WriteLine 的内容现在看起来像这样(假设您的随机数生成在这种情况下生成了数字 4:"Pi Value found. Pi = " + "4"。请注意 4 周围的引号 - 您现在只需两个字符串。对于两个字符串,“+”运算符将它们连接起来,在这种情况下创建单个字符串 "Pi Value found. Pi = 4"

  1. Console.WriteLine($"Pi Value found. Pi = {Pi}")Console.WriteLine("Pi Value found. Pi = {0}", Pi)(虽然在技术上不完全相同,但它们是出于您的目的编写基本相同内容的不同方式)

这是字符串插值。本质上,你正在做的是定义一个模板来格式化字符串 - 由编译器直接完成,这是做它的 $-method (see here for more details),或者通过提供一个模板 Console.WriteLine 代入 String.Format。

你选择哪一个并不重要,它们都是实现相同目标的有效方法。