萬盛學電腦網

 萬盛學電腦網 >> 網頁制作 >> DivCSS教程 >> VB中Byval和byref的區別

VB中Byval和byref的區別

  在VB中Byval 和byref怎麼區別?簡單來說Byval是傳值,byref是傳地址,ByVal :表示該參數是按值方式傳遞的。ByRef :表示該參數按引用方式傳遞。下面綠茶小編為大家詳細介紹Byval 和byref的區別。

  1、引用參數(ref)在可以作為引用參數在函數成員調用中傳遞之前,必須已明確賦值,而輸出參數(out)在可以作為輸出參數在函數成員調用中傳遞之前不一定要明確賦值,在該函數成員正常返回前都必須已明確賦值。

  2、在函數內部,引用參數(ref)被視為初始已賦值,輸出參數(out)被視為初始未賦值。

  3、默認地,VB中的所有參數都是值傳遞。只有在參數的修飾符中明確包含out或ref,才是引用傳遞。但是需要知道的是,當參數的類型是引用類型時,你傳遞的是一個對象的引用而不是實際的對象。

  實例:

sub Add1(ByVal no as int32)

 

 no=no+100

end sub

 

sub Add2(ByRef no as int32)

 no=no+100

end sub

 

private sub button1_click(sender as object,e as eventargs)handles button1.click

 dim a as int32

 a=100

 Add1(a)

 msgbox ("a的值為:" & a) '顯示:a的值為100

 Add2(a)

 msgbox ("a的值為:" & a) '顯示:a的值為200,因為Add2中的參數no為ByRef,即

 

 '按地址傳遞,因此在Add2中對no進行修改後,將會導致

 '源參數a的值也被修改。

End Sub

 

  ByVal是傳遞值 源數據不會被修改,你可以把這個值當作自己的局部變量來使用;ByRef是傳遞地址,源數據可能被修改,你對這個變量的操作將對你傳入的那個變量產生影響。

copyright © 萬盛學電腦網 all rights reserved