I Visual Basic , passerer passerer mekanismen argumenter for en prosedyre. Dette passerer mekanismen er spesifisert med en av to søkeord : " . ByRef " " ByVal " eller Disse søkeordene kan du angi om verdien av et argument er passert, eller en referanse til verdien av et argument er vedtatt av mekanismen til prosedyren. Vurdere hvilken type funksjonalitet du trenger og utpeke søkeord som best passer denne typen funksjonalitet. Hva er " ByVal " ?
" ByVal " er nøkkelordet som instruerer passerer mekanisme for å passere verdien av et argument til en prosedyre . Når du passerer et argument i verdi , Visual Basic kopier verdien og setter den inn i en lokal variabel i prosedyren . Den " ByVal " søkeord er gyldig i " erklære " utsagn , "funksjon" utsagn , " Operator " uttalelser, "eiendom" uttalelser, og "Sub " uttalelser . Uavhengig av uttalelsen type, refererer " ByVal " søkeord alltid til bestått mekanisme.
Hva er " ByRef " ?
" ByRef " er nøkkelordet som instruerer passerer mekanisme for å passere argumentet ved referanse , også referert til som en peker på en eller annen programmering fundamentale dokumentasjon. Dette går som en direkte referanse til argumentet til prosedyren. " ByRef " er standard spesifikasjon når du passerer et argument , men man bør inkludere spesifikasjonen for lettere å lese av koden av andre. Den " ByRef " søkeord er gyldig i " erklære " utsagn , "funksjon" uttalelser, og "Sub " uttalelser . Like " ByVal " refererer " ByRef " alltid til bestått mekanismen uavhengig av uttalelsen type.
Bruk av " ByRef " og " ByVal "
hvilke søkeord du bruker avhenger av den funksjonaliteten du trenger, og med hva du jobber . Matriser må være bestått ved henvisning , så du vil alltid bruke " ByRef " med en matrise. Hvis du ønsker å unngå enhver endring til argumentet og dens element , vil du bruke " ByVal " . Dette er fordi " ByVal " ikke tillater modifisering. Hvis du trenger å være i stand til å gjøre endringer , bruk " ByRef " .
" ByRef " vs " ByVal "
Den store forskjellig mellom " ByRef " og " ByVal " er at " ByRef " muliggjør argumentet er element som skal endres og " ByVal " ikke. " ByVal " går bare en verdi , der " ByRef " passerer en tilkobling. " ByVal " beskytter argument og dens element fra noen endring og " ByRef " gir tilgang for modifisering formål. " ByRef " er bedre for ytelse der store mengder kode er involvert i argumentet fordi " ByVal " måtte kopiere all koden som det sendes til prosedyren.