どちらが速いですか?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
以下を出力します。
ByVal: Hello World (ByVal)!
ByRef: foobar