.Net下ByRef和ByVal的区别是什么-创新互联

这篇文章主要讲解了“.Net下ByRef和ByVal的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“.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的区别是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联网站建设公司,,小编将为大家推送更多相关知识点的文章,欢迎关注!

网页题目:.Net下ByRef和ByVal的区别是什么-创新互联
地址分享:https://www.cdcxhl.com/article10/cshjgo.html

成都网站建设公司_创新互联,为您提供网站改版品牌网站建设域名注册虚拟主机网页设计公司静态网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

营销型网站建设