• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

        VB.NET是怎樣做到的(7)——可選參數與按名傳遞

        VB.NET是怎樣做到的(7)——可選參數與按名傳遞

        更新時間:2022-05-04 文章作者:未知 信息來源:網絡 閱讀次數:

        .NET Blog上最近新貼子的數目有減少的趨勢。我覺得每個人都應該勤快一點,分享自己經驗和想法,別讓這個Blog衰落下去。

        VB從4.0開始支持“可選參數”這一特性。就是說,函數或子程序的參數有些是可選的,調用的時候可以不輸入。其實VB從1.0開始就有一些函數帶有可選參數,只不過到了4.0才讓用戶自己開發這樣的過程。在VB4里,可選參數可以不帶默認值,而在VB.NET里,如果使用可選參數,則必須帶有默認值。如

        Public Sub TestOptional(Optional i As Integer = 1)

        End Sub

        調用的時候,既可以寫成TestOptional(2),也可以寫成TestOptional(),這種情況參數i自動等于1。如果過程有不止一個可選參數,則VB還提供一種簡化操作的方法——按名傳遞參數。比如過程

        Public Sub TestOptional(Optional i As Int32 = 1, Optional j As Int32 = 1, Optional k As Int32 = 1)

        End Sub

        如果只想指定k,讓i和j使用默認值,就可以使用按名傳遞,如下

        TestOptional(k := 2)

        而且這種方式不受參數表順序的限制

        TestOptional(k := 2, i := 3, j := 5)

        這些的確是相當方便的功能,C#就不支持上述兩個特性。我們看看它是怎樣在IL級別實現的。上述第一個方法在IL中的定義為

        .method public instance void TestOptional([opt] int32 i) cil managed
        {
        .param [1] = int32(0x00000001)
        .maxstack 8

        可見,參數被加上了[opt]修飾符,而且.param指定了參數的默認值。這是只有VB能識別的內容,C#會跳過他們。在調用的時候,VB若發現參數被省略,則自動讀取.param部分的默認值,并顯式傳遞給過程。這一部分完全由編譯器處理,而且沒有任何性能損失,和手工傳遞所有參數是完全一樣的。至于按名傳遞,VB會自動調整參數的順序,其結果與傳統方式的傳遞也沒有任何的不同。這說明我們可以放心地使用這項便利。而且帶有可選參數的過程拿到C#中,頂多變成不可選參數,也不會造成什么其他的麻煩。

        PS.很多COM組件都使用了默認參數,而且有些過程的參數列表非常長,在VB里可以輕松地處理它們,而在C#中經常讓開發者傳參

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 免费观看在线禁片| 亚欧乱色国产精品免费视频| 午夜不卡久久精品无码免费| 中文亚洲AV片在线观看不卡| 精品多毛少妇人妻AV免费久久| 国产日韩成人亚洲丁香婷婷| 一级做a爰片久久毛片免费陪| 国产国拍亚洲精品福利| a级片免费在线播放| 国产亚洲一区二区手机在线观看| 免费无码又爽又刺激网站 | 黄色免费在线观看网址| 白白国产永久免费视频| 粉色视频免费入口| 亚洲午夜久久久久久久久久| 今天免费中文字幕视频| 亚洲国产韩国一区二区| 免费毛片在线播放| 性生大片视频免费观看一级| 亚洲国产精品无码一线岛国| 最近2019年免费中文字幕高清| 亚洲精品456在线播放| 午夜免费不卡毛片完整版| 午夜免费国产体验区免费的| 亚洲高清国产拍精品26U| 在线观看H网址免费入口| 精品亚洲成a人在线观看| 国产亚洲成AV人片在线观黄桃 | 四虎成人免费观看在线网址 | 亚洲人成网址在线观看| 成人毛片免费播放| 一级毛片完整版免费播放一区| 亚洲av日韩av不卡在线观看| 青苹果乐园免费高清在线| 一级做a爰片久久毛片免费陪| 亚洲伊人tv综合网色| 亚洲阿v天堂在线2017免费| 日韩精品内射视频免费观看 | 亚洲国产精品精华液| 亚洲人成图片小说网站| 成人免费福利电影|