【发布时间】:2010-07-22 11:03:35
【问题描述】:
阅读Which is faster? ByVal or ByRef? 让我想知道那里的 cmets 在性能方面是否确实适用于Strings。由于字符串是在传递之前复制的,所以传递字符串ByRef 不是更有效(如果被调用者不需要字符串的副本)吗?
谢谢,
CFP。
编辑:考虑一下这段代码,这让我觉得有某种副本正在进行:
Sub Main()
Dim ByValStr As String = "Hello World (ByVal)!"
Dim ByRefStr As String = "Hello World (ByRef)!"
fooval(ByValStr)
fooref(ByRefStr)
Console.WriteLine("ByVal: " & ByValStr)
Console.WriteLine("ByRef: " & ByRefStr)
Console.ReadLine()
End Sub
Sub fooval(ByVal Str As String)
Str = "foobar"
End Sub
Sub fooref(ByRef Str As String)
Str = "foobar"
End Sub
它输出:
ByVal: Hello World (ByVal)!
ByRef: foobar
【问题讨论】:
标签: vb.net performance string byref byval