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

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

.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





主站蜘蛛池模板: 五月六月婷婷 | 日韩欧美中文字幕一区二区三区 | 网址大全在线免费观看 | 天天亚洲 | 欧美性xxxx交 | 在线综合亚洲欧美网站天堂 | 五月婷婷激情综合 | 日韩欧美精品综合一区二区三区 | 深夜视频在线看 | 欧美天天在线 | 欧洲性开放大片免费观看视频 | 亚洲欧美天堂 | 一本到视频在线观看 | 中国与黑人xxxx视频 | 五月婷婷丁香在线 | 日韩欧美系列 | 探花 在线 | 中文字幕日韩一区二区不卡 | 亚洲成a人不卡在线观看 | 亚洲一区第一页 | 欧美性xxxx极品高清3d | 小明精品国产一区二区三区 | 日韩高清在线播放不卡 | 欧美亚洲综合视频 | 人人鲁免费播放视频人人香蕉 | 中文字幕亚洲综久久2021 | 亚洲第一区精品观看 | 日韩免费一区二区三区 | 日本高清免费在线 | 亚洲 成人 欧美 自拍 | 香蕉狠狠再啪线视频 | 午夜网站在线观看免费网址免费 | 亚洲精品中文字幕午夜 | 婷婷开心 | 日韩欧美亚洲国产精品字幕久久久 | 亚洲国产成人精彩精品 | 五月六月丁香 | 日韩视频精品在线 | 青青青国产免费手机视频在线观看 | 青春草a∨在线观看免费app | 视频h在线观看 |