XO3*_*O39 3 vb.net concatenation
在我还在学习的时候,请对我很轻松.
以下代码:
Imports System.Console
Module Module1
Sub Main()
Dim num As Integer
Dim name As String
num = 1
name = "John"
WriteLine("Hello, {0}", num)
WriteLine("Hello, {0}", name)
WriteLine("Hello, {0}", 1)
WriteLine("Hello, {0}", "John")
WriteLine("5 + 5 = {0}", 5 + 5)
WriteLine()
End Sub
End Module
Run Code Online (Sandbox Code Playgroud)
与此代码具有相同的输出:
Imports System.Console
Module Module1
Sub Main()
Dim num As Integer
Dim name As String
num = 1
name = "John"
WriteLine("Hello, " & num)
WriteLine("Hello, " & name)
WriteLine("Hello, " & 1)
WriteLine("Hello, " & "John")
WriteLine("5 + 5 = " & 5 + 5)
WriteLine()
End Sub
End Module
Run Code Online (Sandbox Code Playgroud)
两个输出:
您好,1
您好,John
您好,1
您好,John
5 + 5 = 10
我到处寻找,找不到答案.
何时使用"{0},{1},...等"?什么时候使用"&"?
哪个更好?为什么?
与{0}你指定的格式占位符,而与&你只是串联的字符串.
使用格式占位符
Dim name As String = String.Format("{0} {1}", "James", "Johnson")
Run Code Online (Sandbox Code Playgroud)
使用字符串连接
Dim name As String = "James" & " " & "Johnson"
Run Code Online (Sandbox Code Playgroud)
你在这里看到的是两个非常不同的表达式,恰好可以评估相同的输出.
将&在VB.Net运算符是字符串连接运算符.它本质上是通过将表达式的左侧和右侧都转换为a String并将它们加在一起来实现的.这意味着以下所有操作大致相同
"Hello " & num
"Hello " & num.ToString()
"Hello " & CStr(num)
Run Code Online (Sandbox Code Playgroud)
这{0}是.Net API的一个特性.它表示字符串中的位置,稍后将替换为值.的{0}是指传递给函数,所述第一值{1}的第二个,等等.这意味着以下所有操作大致相同
Console.WriteLine("Hello {0}!", num)
Console.WriteLine("Hello " & num & "!")
Run Code Online (Sandbox Code Playgroud)
您看到相同输出的原因是因为放在{0}字符串的末尾几乎与2个值的字符串串联完全相同.