gpt4 book ai didi

.Net 下区别使用 ByRef/ByVal 的重要性 分享

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章.Net 下区别使用 ByRef/ByVal 的重要性 分享由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

一直以来在 VB6 下,参数默认都是按照 ByRef  传送的,(即按地址传送)  而在 .Net(C#,VB.Net) 下, 参数默认是使用 ByVal (即按值传送)  传送的,一直没怎么注意。 这些天在优化程序时发现 当传送 大变量时,使用默认方式(ByVal) 效率相当低 如传入的参数变量类型 是 大字符串,数组,集合,DataSet 等 测试的关键代码如下,我传入的字符串并没有特别大,变量越大,使用 ByRef 效率越高,当然,当传入得变量可以被修改或无其他作用时,可以改用 ByRef 传 。

复制代码代码如下

 Private Declare Function GetTickCount Lib "kernel32" () As Int32     Private Function TestByRef(ByRef aa As String) As String         aa = "1" & aa         TestByRef = aa     End Function     Private Function TestByVal(ByVal aa As String) As String         aa = "1" & aa         TestByVal = aa     End Function     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click         Dim teststr As String         Dim Newstr As String         Dim t As Int32         Dim II As Int32         teststr = "wosdfsdfdsfdsfsfdsfsfsfsfsfsfdsfdsfcvxcvxcvcxvvcxvvvxvcvxv"         t = GetTickCount         For II = 1 To 10000             Newstr = TestByRef(teststr)         Next         MsgBox("ByRef  " & CStr(GetTickCount - t))         t = GetTickCount         For II = 1 To 10000             Newstr = TestByVal(teststr)         Next         MsgBox("ByVal  " & CStr(GetTickCount - t))     End Sub 。

最后此篇关于.Net 下区别使用 ByRef/ByVal 的重要性 分享的文章就讲到这里了,如果你想了解更多关于.Net 下区别使用 ByRef/ByVal 的重要性 分享的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com