自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

快速了解VB.NET可選參數(shù)

開發(fā) 后端
這里介紹VB.NET可選參數(shù),在VB.NET里,如果使用可選參數(shù),則必須帶有默認(rèn)值。如果過程有不止一個(gè)VB.NET可選參數(shù),則VB還提供一種簡化操作的方法——按名傳遞參數(shù)。

VB.NET還是比較常用的,于是我研究了一下VB.NET可選參數(shù),在這里拿出來和大家分享一下,希望對大家有用。VB從4.0開始支持“可選參數(shù)”這一特性。就是說,函數(shù)或子程序的參數(shù)有些是可選的,調(diào)用的時(shí)候可以不輸入。其實(shí)VB從1.0開始就有一些函數(shù)帶有可選參數(shù),只不過到了4.0才讓用戶自己開發(fā)這樣的過程。在VB4里,可選參數(shù)可以不帶默認(rèn)值,而在VB.NET里,如果使用可選參數(shù),則必須帶有默認(rèn)值。如

  1. Public Sub TestOptional(Optional i As Integer = 1)  
  2. End Sub  

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

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

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

  1. TestOptional(k :2

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

  1. TestOptional(k :2, i :3, j :5

這些的確是相當(dāng)方便的功能,C#就不支持上述兩個(gè)特性。我們看看它是怎樣在IL級別實(shí)現(xiàn)的。上述***個(gè)方法在IL中的定義為

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

可見,參數(shù)被加上了[opt]修飾符,而且.param指定了參數(shù)的默認(rèn)值。這是只有VB能識別的內(nèi)容,C#會(huì)跳過他們。在調(diào)用的時(shí)候,VB若發(fā)現(xiàn)參數(shù)被省略,則自動(dòng)讀取.param部分的默認(rèn)值,并顯式傳遞給過程。這一部分完全由編譯器處理,而且沒有任何性能損失,和手工傳遞所有參數(shù)是完全一樣的。至于按名傳遞,VB會(huì)自動(dòng)調(diào)整參數(shù)的順序,其結(jié)果與傳統(tǒng)方式的傳遞也沒有任何的不同。這說明我們可以放心地使用這項(xiàng)便利。而且?guī)в蠽B.NET可選參數(shù)的過程拿到 C#中,頂多變成不VB.NET可選參數(shù),也不會(huì)造成什么其他的麻煩。

PS.很多COM組件都使用了默認(rèn)參數(shù),而且有些過程的參數(shù)列表非常長,在VB里可以輕松地處理它們,而在C#中經(jīng)常讓開發(fā)者傳參數(shù)傳到吐血。

【編輯推薦】

  1. 簡單概括VB.NET默認(rèn)屬性
  2. 淺談VB.NET Implements語句
  3. 描述VB.NET DirectCast運(yùn)算符
  4. 詳細(xì)分析VB.NET WithEvents
  5. 淺析VB.NET局部靜態(tài)變量
責(zé)任編輯:佚名 來源: CSDN
相關(guān)推薦

2010-01-19 13:36:16

VB.NET可選參數(shù)

2010-01-12 11:47:09

VB.NET可選參數(shù)

2009-10-30 13:31:06

VB.NET名空間

2009-10-30 10:47:48

VB.NET垃圾收集器

2009-10-09 16:11:33

VB.NET語法

2009-10-29 14:04:48

VB.NET Deri

2009-11-02 10:42:04

VB.NET EXCE

2009-11-02 12:35:10

VB.NET追加文件

2009-11-02 13:54:27

VB.NET shel

2009-10-28 15:01:59

VB.NET SHEL

2009-11-03 10:09:48

VB.NET對象

2009-11-03 13:54:55

VB.NET繼承

2009-11-03 13:33:39

VB.NET對象列表

2009-11-02 09:43:01

VB.NET構(gòu)造函數(shù)

2009-10-29 14:22:59

VB.NET集合存儲

2009-10-09 16:00:34

VB6.0開發(fā)

2009-11-10 16:55:05

VB.NET調(diào)用API

2009-11-02 15:49:23

VB.NET顯示系統(tǒng)信

2009-10-21 09:40:23

VB.NET搜索

2009-11-02 17:54:44

VB.NET數(shù)組
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號