控制台.尝试不同的写作方式
本文关键字:方式 控制台 | 更新日期: 2023-09-27 18:09:58
困惑在一个很基本的问题上:我在很多书中看到,他们使用控制台。WriteLine:
int i = 12;
Console.WriteLine("MyVariable value is {0}", i);
不是int i = 12;
Console.WriteLine("MyVariable value is" + i);
它们之间有什么区别吗?
在您的示例中,实际上不是。但是,第一种情况可以很容易地扩展为
Console.WriteLine("MyVariable value is {0} and myothervar is {1}", i, j);
对于第二种方法来说可能有点麻烦
查看这个帖子的答案。在简单的情况下,这并不重要,但如果您在大循环或其他地方这样做,则会考虑性能问题。
也许这对将来的人有帮助。现在有第三种方法(插值),它是最干净的!它们只是同一事物的不同写法。
int i = 12;
// Interpolation Method- Req. C# 6 or later [Cleanest]
Console.WriteLine($"MyVariable value is {i}");
// Concatenation Method (from VB days)
Console.WriteLine("MyVariable value is " + i);
// Format Method (from C days)
Console.WriteLine("MyVariable value is {0}", i);
我相信您在初学者的书中看到过字符串连接,因为它很简单。在这样一个简单的示例中使用字符串格式之前,需要对其进行解释。字符串连接非常简单,可能在书中已经教过了(即使没有,也足够简单,可以通过示例来学习)。
我可以看到C程序员在第一次遇到格式语法时可能会被它弄糊涂。当试图将其扩展到两个变量时,他们可能会认为需要这样写:
int numA = 3;
int numB = 5;
Console.WriteLine("numA is {0} and numB is {0}", numA, numB);
认为它类似于C的printf
,其中{0}
等于%d
:
printf("numA is %d and numB is %d", numA, numB);
他们当然会对varA
被打印两次感到惊讶。或者,当试图对字符串进行Console.WriteLine
操作时,他们可能会因为不知道%s
的等量物而感到沮丧。另一方面,字符串连接的缺陷更少,初学者更容易扩展。当然,它更杂乱,但也更强大,在一本介绍c#的书中,这种强大可能会让人感到困惑,因为字符串格式化语法可能变得相当复杂:
Console.WriteLine("numA is {0,17:$00.00####}", numA);
上面的例子还说明了连接和字符串格式化之间的区别。
您的具体情况将不会,以获取更多信息
http://msdn.microsoft.com/en-us/library/ms228362.aspx对