我一直在MSDN文档和VB.net教程中看到这样的语法.
Dim pattern As String = "(\d{3})-(\d{3}-\d{4})" Dim input As String = "212-555-6666 906-932-1111 415-222-3333 425-888-9999" Dim matches As MatchCollection = Regex.Matches(input, pattern) For Each match As Match In matches Console.Write("Area Code: {0}", match.Groups(1).Value) Next
打印:
区号:212
区号:906
区号:415
区号:425
它似乎模糊地说“这是一个字符串{0}”,变量打印
“这是一个字符串”& valueOfVariable.ToString
但是我对这个实际工作原理的细节有几点疑问:
> VB.net是否自动假设大括号中包含字符串参数,或者它是否依赖于上下文.我只看到这个语法作为Console.WriteLine的一部分(我用google搜索特殊字符vb.net 4.0没有运气)?
>什么时候以及如何将参数分配到这样的字符串中的规则是什么?
>任何人都可以指向我的MSDN参考?这个语法/字符串技巧叫什么?
http://msdn.microsoft.com/en-us/library/system.string.format.aspx
它将接受任何参数,并将根据指定的格式转换为其文本表示,有许多方法可以控制如何格式化给定对象(它可以是字符串,数字,日期任何东西).
.Net中的所有内容都是从对象派生而来的,对象有一个名为ToString的方法,它将返回其字符串表示形式.因此,如果将数字或其他任何内容传递给Format,则此方法将调用ToString并将其字符串表示与其他设置一起使用.
大多数情况下,此方法将被其他一些高级方法使用,例如在Console.WriteLine等中,但最终它们都是相同的.
复合格式
http://msdn.microsoft.com/en-us/library/txafckwd.aspx
标准数字格式
http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx
自定义数字格式
http://msdn.microsoft.com/en-us/library/0c899ak8.aspx
您必须阅读MSDN中的所有相关链接以获取更多信息.