码迷,mamicode.com
首页 > Web开发 > 详细

VB6中的引用传递 与 VB.NET中的引用传递的区别

时间:2014-10-03 18:07:24      阅读:350      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   ar   for   strong   sp   

首先注意一点,在VB6中缺省参数传递的方式是:引用传递,而在VB.NET中缺省参数传递的方式是:值传递。

然后我们看下面VB6中的引用传递与VB.NET中的引用传递的对比。

 

VB6中的引用传递

Private Sub CommandButton1_Click()

ChangeName CommandButton1.caption

End Sub

Private Sub ChangeName(caption As String)

caption = "NameHasBeenChanged!"

End Sub

bubuko.com,布布扣

点击Button之后

bubuko.com,布布扣

 

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
 

bubuko.com,布布扣    

点击Button之后

bubuko.com,布布扣

 

通过以上的对比发现:VB6中的引用传递与VB.NET中的引用传递的效果存在很大差异:同样是将Button的属性作为参数以引用传递的方式传给方法体,在方法体中进行更改,但得到的效果却完全不同。在VB6中Button的Caption没有被更改,在VB.NET中Button的Text被更改了。

在VB6中,当将对象的属性以引用传递的方式传递时,对象的属性的值不会被更改;但是在VB.NET中,将对象的属性以引用方式进行传递时,该对象的属性的值将会被更改。

这一点在VB6升级到VB.NET的项目中应该特别注意,很多Bug都源于此。

VB6中的引用传递 与 VB.NET中的引用传递的区别

标签:style   blog   http   color   io   ar   for   strong   sp   

原文地址:http://www.cnblogs.com/PolarisSky/p/4005056.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!