VB.NET可選參數(shù)調(diào)用方式解析
VB.NET作為一款真正的面向?qū)ο笳Z(yǔ)言,其功能非常強(qiáng)大,可以支持繼承,并能進(jìn)行代碼托管等等。在這里我們先來(lái)了解一下VB.NET可選參數(shù)的一些應(yīng)用技巧,希望能幫助大家了解這一編程語(yǔ)言的基本應(yīng)用方法。#t#
可以指定過(guò)程參數(shù)是可選的,并且在調(diào)用過(guò)程時(shí)不必為其提供變量。“可選參數(shù)”在過(guò)程定義中由關(guān)鍵字 Optional 指示。適用以下規(guī)則:
過(guò)程定義中的每個(gè)可選參數(shù)都必須指定默認(rèn)值。
VB.NET可選參數(shù)的默認(rèn)值必須是一個(gè)常數(shù)表達(dá)式。
過(guò)程定義中跟在可選參數(shù)后的每個(gè)參數(shù)也都必須是可選的。
下面的語(yǔ)法顯示帶VB.NET可選參數(shù)的過(guò)程聲明:
- Sub sub name(ByVal parameter
1 As data type 1, Optional
ByVal parameter 2 As data
type 2 = default value)
調(diào)用帶VB.NET可選參數(shù)的過(guò)程
過(guò)程在運(yùn)行時(shí)無(wú)法檢測(cè)到給定的參數(shù)是否已被省略,或者調(diào)用代碼是否已顯式提供默認(rèn)值。如果需要弄清楚這一點(diǎn),可以設(shè)置一個(gè)不可能的值作為默認(rèn)值。下面的過(guò)程定義了可選參數(shù) office,并測(cè)試其默認(rèn)值 QJZ 以查看它在調(diào)用中是否已被省略:
- Visual Basic
- Sub notify(ByVal company As
String, Optional ByVal
office As String = "QJZ")- If office = "QJZ" Then
- Debug.WriteLine("office not
supplied -- using
Headquarters")- office = "Headquarters"
- End If
- ' Insert code to notify
headquarters or
specified office.- End Sub
如果可選參數(shù)是像 String 這樣的引用類型,只要它不是該變量所預(yù)期的值,就可以使用 Nothing 作為默認(rèn)值。
VB.NET可選參數(shù)和重載
定義帶可選參數(shù)的過(guò)程的另一種方法是使用重載。如果有一個(gè)可選參數(shù),可以定義過(guò)程的兩個(gè)重載版本,一個(gè)接受此參數(shù),另一個(gè)則不帶參數(shù)。此方法隨可選參數(shù)數(shù)目的增加而變得更復(fù)雜。然而,這樣做的優(yōu)點(diǎn)是可以完全確定調(diào)用程序是否提供了每個(gè)VB.NET可選參數(shù)。