I Visual Basic , passerar passerar mekanismen argument till ett förfarande . Detta passerar mekanism anges med en av två kategorier : " . ByRef " " ByVal " eller Dessa sökord kan du ange om värdet av ett argument , eller en hänvisning till värdet av ett argument genom mekanismen till förfarandet . Utvärdera den typ av funktioner du behöver och utse det sökord som bäst passar den typen av funktionalitet . Vad är " ByVal " ?
" ByVal " är nyckelordet som instruerar passerar mekanism för att passera värdet av ett argument till ett förfarande . När du passerar ett argument med värde , Visual Basic kopior värdet och sätter in det i en lokal variabel i förfarandet . Den " ByVal " nyckelordet är giltigt i " deklarera" uttalanden , "funktion" påståenden , " Operator " uttalanden , "egendom" uttalanden och " sub" uttalanden . Oavsett uttalande typ , hänvisar " ByVal " nyckelordet alltid till passerande mekanismen . Addera Vad är " ByRef " ?
" ByRef " är nyckelordet som instruerar passerar mekanism för att passera argument genom hänvisning , även kallad en pekare i viss programmering fundamenta dokumentation . Det går en direkt referens till argumentet att förfarandet . " ByRef " är standard specifikationen när den passerar ett argument , men man bör inkludera specifikationen för att underlätta läsningen av koden från andra. Den " ByRef " nyckelordet är giltigt i "Förklara " uttalanden , "funktion" uttalanden och "underavdelning " uttalanden . Liksom " ByVal " , refererar " ByRef " alltid till den passerande mekanismen oavsett uttalandet typ .
Användning av " ByRef " och " ByVal "
vilka sökord du använder beror på de funktioner du behöver och vad du arbetar . Matriser måste skickas med referens , så att du alltid skulle använda " ByRef " med en array . Om du vill förhindra ändring av talan och dess element, skulle du använda " ByVal " . Detta beror på att " ByVal " inte tillåter modifiering . Om du behöver för att kunna göra ändringar , använd " ByRef " .
" ByRef " kontra " ByVal "
stora skiljer mellan " ByRef " och " ByVal " är att " ByRef " medger argumentet är elementet som skall ändras och " ByVal " inte gör . " ByVal " passerar bara ett värde , där " ByRef " passerar en anslutning . " ByVal " skyddar argument och dess inslag från varje förändring och " ByRef " ger åtkomst för modifiering ändamål . " ByRef " är bättre för prestanda där stora mängder kod är involverade i detta resonemang eftersom " ByVal " skulle behöva kopiera all kod som skickas till proceduren .