当在VB.net中的字符串中使用时,这样的括号是什么意思?我在哪里可以找到详细信息?

ber*_*436 3 .net vb.net string

我在VB.net中有一个类似于{}的括号.

我一直在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 
Run Code Online (Sandbox Code Playgroud)

区号:212区号:906区号:415区号:425

它似乎模糊地"this is a string {0}" , variable 印刷了"这是一个字符串"和valueOfVariable.ToString

但是我对这个实际工作原理的细节有几点疑问:

  1. VB.net是否自动假设大括号是持有字符串参数,还是依赖于上下文.我只看到这个语法作为Console.WriteLine的一部分(我用google搜索特殊字符vb.net 4.0没有运气)?
  2. 什么时候以及如何将参数分配到这样的字符串中的规则是什么?
  3. 任何人都可以指向我的MSDN参考?这个语法/字符串技巧叫什么?

Aka*_*ava 6

它被称为字符串格式,

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中的所有相关链接以获取更多信息.


Dav*_*d M 6

这两者实际上没有连接,它取决于你说的背景.

pattern变量中,正则表达式语法\d{3}恰好意味着数字(0-9)的3次出现.

Console.Write,此重载在内部将字符串传递给string.Format,其中卷曲括号的条目被解释为格式化的占位符.只有当string.Format(明确地或隐含地)传递它们具有这种特定含义时.