六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

.Net 下區別使用 ByRef/ByVal 的重要性

[摘要]一直以來在 VB6 下,參數默認都是按照 ByRef 傳送的,(即按地址傳送) 而在 .Net(C#,VB.Net) 下, 參數默認是使用 ByVal (即按值傳送) 傳送的,一直沒怎么注意。這些天在優化程序時發現 當傳送 大變量時,使用默認方式(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





主站蜘蛛池模板: 天天天天天天操 | 亚洲福利午夜 | 午夜不卡视频 | 日产国语一区二区三区在线看 | 午夜精品久久久久久久2023 | 色天天综合色天天天天看大 | 亚洲精品亚洲人成在线 | 伊人首页 | 日韩毛片免费线上观看 | 欧美性aaa| 亚洲欧美日韩精品一区 | 日韩理论片西瓜影音 | 日韩欧美激情视频 | 日本高清免费中文在线看 | 日韩v片 | 一区二区三区国产美女在线播放 | 日韩三级视频在线 | 午夜免费观看视频 | 亚洲一区二区免费看 | 日本一区二区三区免费观看 | 香蕉久草视频 | 四虎最新永久在线精品免费 | 五月天六月婷婷 | 天美传媒影视在线网址 | 午夜亚洲国产成人不卡在线 | 亚洲精品福利 | 欧美一卡二卡3卡4卡无卡六卡七卡科普 | 四虎永久精品免费观看 | 亚洲天堂免费视频 | 亚洲一区在线免费观看 | 日韩福利视频一区 | 亚洲第五页 | 亚洲福利精品一区二区三区 | 亚洲综合色在线观看 | 欧美性黄色 | 在线视频你懂的国产福利 | 欧美亚洲日本国产 | 日韩三级在线观看 | 三级大黄 | 亚洲免费三级 | 亚洲男女网站 |