Volitelné parametry (Visual Basic)
Můžete určit, že postup parametr je nepovinný a nemá žádný argument uvede jej při volání procedury.Volitelné parametry jsou označeny Optional klíčové slovo v definici postup.Platí následující pravidla:
Každý volitelný parametr v definici postup, musíte zadat výchozí hodnotu.
Výchozí hodnota pro volitelný parametr musí být konstantní výraz.
Každý parametr následující v definici postup volitelný parametr musí být také volitelné.
Následující syntaxe ukazuje postup prohlášení s volitelný parametr:
Sub sub name(ByVal parameter 1 As data type 1, Optional ByVal parameter 2 As data type 2 = default value)
Volání procedur pomocí volitelné parametry
Při volání procedury s volitelný parametr můžete zvolit, zda parametr.Pokud to není postup používá výchozí hodnotu parametru deklarována.
Pokud vynecháte jeden nebo více nepovinných argumentů v seznamu argumentů, označit jejich pozice pomocí po sobě jdoucí středníky.Následující příklad volání dodává první a čtvrté argumenty, ale není druhé nebo třetí:
sub name(argument 1, , , argument 4)
Následující příklad vytvoří několik volání MsgBox funkce.MsgBoxvyžádal jeden parametr a dva volitelné parametry.
První volání MsgBox dodává všechny tři argumenty v pořadí, MsgBox je definuje.Druhé volání dodává pouze povinný argument.Třetí a čtvrté volání zadejte první a třetí argument.Třetí volání provádí pozice a čtvrtý volání je nemá název.
MsgBox("Important message", MsgBoxStyle.Critical, "MsgBox Example")
MsgBox("Just display this message.")
MsgBox("Test message", , "Title bar text")
MsgBox(Title:="Title bar text", Prompt:="Test message")
Určování, zda je přítomna nepovinný Argument
Postup nemůže rozpoznat při spuštění dané argument byla vynechána nebo explicitně volající kód dodal výchozí hodnotu.Pokud potřebujete provést tento rozdíl, je nepravděpodobné, že hodnota nastavit jako výchozí.Volitelný parametr definuje následující postup officea testy pro výchozí hodnotu, QJZ, zobrazíte, pokud byl vynechán ve volání:
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
Pokud volitelný parametr je například typ odkazu String, můžete použít Nothing jako výchozí hodnotu podle očekávané hodnoty pro argument není.
Volitelné parametry a přetížení
Postup s nepovinnými parametry definovat jiným způsobem je použití přetížení.Pokud máte jeden volitelný parametr, můžete definovat dvěma přetížených verzí postupu, jeden pro přijetí parametr a jeden bez.Tento přístup se stane složitější jako počet zvýšení nepovinných parametrů.Však jeho výhodou je, že můžete být zcela jisti, zda volající program dodávaný každý volitelný argument.
Viz také
Referenční dokumentace
Koncepty
Procedury v jazyce Visual Basic
Postup parametry a argumenty (Visual Basic)
Předávání argumentů hodnotou a odkaz (Visual Basic)
Předávání argumentů podle umístění a název (Visual Basic)