Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ha egy vagy több argumentumot ad át egy eljárásnak, mindegyik argumentum a hívó kód egyik mögöttes programozási elemének felel meg. Átadhatja ennek az alapul szolgáló elemnek az értékét, vagy hivatkozhat rá. Ezt átengedő mechanizmusnak nevezzük.
Továbbítás érték szerint
Az argumentumot érték szerint adja meg az eljárásdefiníció megfelelő paraméteréhez tartozó ByVal kulcsszó megadásával. Ha ezt az átadási mechanizmust használja, a Visual Basic az alapul szolgáló programozási elem értékét egy helyi változóba másolja az eljárásban. Az eljáráskód nem rendelkezik hozzáféréssel a hívó kód mögöttes eleméhez.
Továbbítás hivatkozás alapján
Az argumentumot hivatkozással adja meg az eljárásdefiníció megfelelő paraméteréhez tartozó ByRef kulcsszó megadásával. Ha ezt az átengedési mechanizmust használja, a Visual Basic közvetlen hivatkozást ad az eljárásnak a hívó kód mögöttes programozási elemére.
Átadási mechanizmus és elemtípus
Az átadási mechanizmus kiválasztása nem ugyanaz, mint az alapul szolgáló elemtípus besorolása. Az érték vagy hivatkozás alapján történő átadás azt jelenti, hogy a Visual Basic mit biztosít az eljáráskódnak. Az értéktípus vagy referenciatípus a programozási elemek memóriában való tárolásának módját jelenti.
Az átengedési mechanizmus és az elem típusa azonban összefügg. A referenciatípus értéke a memória más részeire mutató adatmutató. Ez azt jelenti, hogy amikor egy referenciatípust érték szerint ad át, az eljáráskód mutatót mutat az alapul szolgáló elem adataira, még akkor is, ha az nem fér hozzá az alapul szolgáló elemhez. Ha például az elem egy tömbváltozó, az eljáráskód nem fér hozzá magához a változóhoz, de hozzáférhet a tömbtagokhoz.
Módosítási képesség
Ha nem módosítható elemet ad át argumentumként, az eljárás soha nem módosíthatja azt a hívókódban, függetlenül attól, hogy az át lett-e adva ByVal vagy ByRef.
Módosítható elem esetén az alábbi táblázat összefoglalja az elemtípus és az átadási mechanizmus közötti interakciót.
| Elem típusa | Átadták ByVal |
Átadták ByRef |
|---|---|---|
| Érték típusa (csak egy értéket tartalmaz) | Az eljárás nem módosíthatja a változót vagy annak tagjait. | Az eljárás módosíthatja a változót és annak tagjait. |
| Hivatkozás típusa (egy osztályra vagy struktúrapéldányra mutató mutatót tartalmaz) | Az eljárás nem tudja módosítani a változót, de módosíthatja annak a példánynak a tagjait, amelyre mutat. | Az eljárás módosíthatja a változót és annak a példánynak a tagjait, amelyre mutat. |
Lásd még
- Eljárások
- Eljárásparaméterek és argumentumok
- Útmutató: Argumentumok átadása eljárásnak
- Argumentumok átadása érték és hivatkozás szerint
- Módosítható és nem módosítható argumentumok közötti különbségek
- Útmutató: Eljárásargumentum értékének módosítása
- Útmutató: Eljárásargumentum védelme az értékváltozásokkal szemben
- Útmutató: Argumentum érték szerinti átadásának kényszerítése
- Argumentumok átadása pozíció és név szerint
- értéktípusok és referenciatípusok