Sdílet prostřednictvím


Rozdíly mezi předáním argumentu podle hodnoty a podle reference (Visual Basic)

Když předáte jeden nebo více argumentů do procedury, odpovídá každý argument základní programovací element v volající kód.Můžete předat tento základní prvek hodnotu nebo odkaz na něj.Říká se mechanismus předávání.

Předání hodnotou

Předat argument hodnotou určením ByVal (Visual Basic) klíčové slovo odpovídající parametru v definice procedury.Při použití tohoto mechanismu, předávání Visual Basic zkopíruje hodnotu základní programovací element do místní proměnné v postupu.Kód postupu nemá volající kód přístup k základní prvek.

Předání odkazem

Předat argument podle určením ByRef (Visual Basic) klíčové slovo odpovídající parametru v definice procedury.Při použití tohoto mechanismu, předávání Visual Basic postup poskytuje přímý odkaz na základní programovací element v volající kód.

Mechanismus předávání a typ prvku

Volba mechanismus předávání není stejný jako klasifikace základní typ prvku.Předávání hodnotou nebo odkazem odkazuje na co Visual Basic dodává kód postupu.Typ hodnoty nebo typ odkazu označuje jak je programovací element uložené v paměti.

Však mechanismus předávání a typ prvku souvisejí.Hodnota typu odkazu je ukazatel na data v paměti.To znamená, že když předáte hodnotu typu odkazu, kód postupu má ukazatel na základní prvek dat, přestože základní prvek sám nemůže získat přístup.Pokud prvek je proměnné pole, například kód postupu nemá přístup k proměnné sám, ale má přístup členů pole.

Možnost upravit

Při předání nonmodifiable prvku jako argument, postup nikdy ji upravit v kódu volajícího, zda je předán ByVal nebo ByRef.

Následující tabulka shrnuje upravitelné prvku, interakce mezi typ prvku a mechanismus předávání.

Typ prvku

PředanýByVal

PředanýByRef

Typ hodnoty (obsahuje pouze hodnotu)

Postup nelze změnit proměnné nebo kterýkoli z jejích členů.

Postup lze změnit proměnnou a její členové.

Typ odkazu (obsahuje ukazatel na instanci třídy nebo struktury)

Postup nelze změnit proměnnou, ale můžete změnit členy instance, na který odkazuje.

Postup lze změnit proměnnou a členové instance, na který odkazuje.

Viz také

Úkoly

Postupy: Předání argumentů proceduře (Visual Basic)

Postupy: Změna hodnoty argumentu procedury (Visual Basic)

Postupy: Ochrana argumentu procedury proti změnám hodnoty (Visual Basic)

Postupy: Vynucení předání argumentu podle hodnoty (Visual Basic)

Koncepty

Procedury v jazyce Visual Basic

Parametry a argumenty procedury (Visual Basic)

Předávání argumentů podle hodnoty a odkazu (Visual Basic)

Rozdíly mezi upravitelnými a neupravitelnými argumenty (Visual Basic)

Předávání argumentů podle pozice a názvu (Visual Basic)

Typy hodnot a typy odkazu