首先注意一点,在VB6中缺省参数传递的方式是:引用传递,而在VB.NET中缺省参数传递的方式是:值传递。spa
而后咱们看下面VB6中的引用传递与VB.NET中的引用传递的对比。3d
VB6中的引用传递code
Private Sub CommandButton1_Click() ChangeName CommandButton1.caption End Sub Private Sub ChangeName(caption As String) caption = "NameHasBeenChanged!" End Sub
点击Button以后orm
VB.NET中的引用传递对象
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ChangeName(Button1.Text) End Sub Private Sub ChangeName(ByRef caption As String) caption = "NameHasBeenChanged!" End Sub End Class
点击Button以后blog
经过以上的对比发现:VB6中的引用传递与VB.NET中的引用传递的效果存在很大差别:一样是将Button的属性做为参数以引用传递的方式传给方法体,在方法体中进行更改,但获得的效果却彻底不一样。在VB6中Button的Caption没有被更改,在VB.NET中Button的Text被更改了。get
在VB6中,当将对象的属性以引用传递的方式传递时,对象的属性的值不会被更改;可是在VB.NET中,将对象的属性以引用方式进行传递时,该对象的属性的值将会被更改。it
这一点在VB6升级到VB.NET的项目中应该特别注意,不少Bug都源于此。io