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

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

.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





主站蜘蛛池模板: 亚洲国产精品久久婷婷 | 欧美污视频| 亚洲国产精品综合欧美 | 午夜777| 天天操天天干天天 | 日韩在线网 | 日日干天天爽 | 一区二区在线欧美日韩中文 | 日日干夜夜拍 | 日韩一区二三区无 | 亚洲欧美日韩一区高清中文字幕 | 中文字幕日韩在线一区国内 | 欧美综合区 | 新男人皇宫亚洲男人 | 三级国产在线观看 | 亚洲精品乱码久久久久久 | 青草免费在线观看 | 亚洲男人的天堂久久香蕉 | 婷婷色综合成人成人网小说 | 午夜老司机永久免费看片 | 午夜视频在线免费看 | 亚洲人与黑人xxxx | 日韩在线观看一区二区三区 | 亚洲网址在线观看 | 全黄一级裸片视频免费区 | 三区在线视频 | 午夜三级福利 | 日韩在线视频免费 | 四虎精品永久在线网址 | 亚洲天堂在线观看完整版 | 天天上天天干 | 热久久最新视频 | 日韩成人影院 | 色综合久久综合网观看 | 中文字幕网资源站永久资源 | 色噜噜狠狠网站 | 青草视频在线观看免费资源 | 外国毛片网站 | 欧美性黑人极品hd网站 | 日本黄色免费在线 | 亚洲免费观看 |