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


    首先注意一点,在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

    image

    点击Button之后

    image

    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
     

    image    

    点击Button之后

    image

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

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

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

  • 相关阅读:
    国庆·生日
    国足
    Eason's concert
    今天的斩获
    The 4400
    闷热
    24
    一直登录不了。。。原来是因为。。。
    黄色暴雨警告
    绝密飞行
  • 原文地址:https://www.cnblogs.com/PolarisSky/p/4005056.html
Copyright © 2020-2023  润新知