2013-06-01 143 views
4

我一直在环顾四周,但很难找到这个问题的答案,因为我正在寻找的东西是非特定的。大括号中的数字是什么“{0}”是什么意思?

我见过很多代码,其中使用了{0},我仍然无法弄清楚它在做什么。这里有一个例子:

Dim literal As String = "CatDogFence" 
Dim substring As String = literal.Substring(6) 
Console.WriteLine("Substring: {0}", substring) 

回答

4
Console.WriteLine("Substring: {0}", substring) 

相同

Console.WriteLine("Substring: " & substring) 

当使用Console.WriteLine{n}将插入n日数为字符串,然后把它写。

更复杂的例子可以看这里:

Console.WriteLine("{0} {1}{2}", "Stack", "Over", "flow") 

这将打印Stack Overflow

+0

啊,这很有道理,谢谢!虽然我不得不问,为什么你编辑了关于在StackOverflow上打招呼的问题,因为我对于为什么这是一个问题有点神秘。 :P – Lou

+0

@LeoKing不客气:)在Stack Overflow中,我们不想在问题中问候和“感谢”,他们只是分散注意力。 (阅读更多[这里](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts)) – Doorknob

+0

嗯,这很有趣。似乎在这个环节颇有争议。我个人看不出有什么问题,因为我讨厌在任何网站上看起来太苛刻和琐碎,但如果社区要这样做,我不会成为一个混蛋! – Lou

1

这是一个占位符。从第二个参数开始(在你的情况下是子字符串),它们以给定的顺序包含在给定的字符串中。这样,您可以避免使用+运算符进行长字符串连接,并且可以更轻松地进行语言本地化,因为您可以将包括占位符在内的竞争字符串拉到某些外部资源文件等。

+0

哦我看,这真的很酷!谢谢! – Lou

2

Console.WriteLine()和String.Format()use该语法。 它允许你给一个变量注入到一个字符串,例如:

dim name = "james" 
String.Format("Hello {0}", name) 

该字符串将是 “你好詹姆斯”

使用Console.Writeline:

Console.WriteLine("Hello {0}",name) 

这将写入“你好詹姆斯“

+0

谢谢,这使得很多感觉:)。 – Lou

0

它被称为复合格式,并支持许多方法,Console.WriteLine是一个。除了索引占位符,还有其他功能可用。以下是显示复合格式的一些其他功能的文档链接。

Composite Formatting