Clé*_*ent 4 vb.net string performance byref byval
阅读哪个更快?ByVal还是ByRef?让我想知道那里的评论是否适用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
Run Code Online (Sandbox Code Playgroud)
它输出:
ByVal: Hello World (ByVal)!
ByRef: foobar
Run Code Online (Sandbox Code Playgroud)
字符串不被传递之前复制.字符串是引用类型,即使它们的行为有点像值类型.
您应该在您的要求的上下文中使用最有意义的内容.(如果你的要求碰巧是"必须以牺牲所有其他考虑因素为代价挤压每一个纳秒的性能"那么你应该破解探查器而不是询问堆栈溢出!)
这几乎肯定是你不必担心的事情,我怀疑是否存在显着的性能差异.我可以看到任何差异的唯一情况是传递大值类型.
| 归档时间: |
|
| 查看次数: |
12857 次 |
| 最近记录: |