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

点击Button之后

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之后

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

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

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

VB6中的引用传递 与 VB.NET中的引用传递的区别的更多相关文章

  1. [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法

    一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...

  2. Java中对象、对象引用、堆、栈、值传递以及引用传递的详解

    Java中对象.对象引用.堆.栈.值传递以及引用传递的详解 1.对象和对象引用的差别: (1).对象: 万物皆对象.对象是类的实例. 在Java中new是用来在堆上创建对象用的. 一个对象能够被多个引 ...

  3. 自写函数VB6 STUFF函数 和 VB.net 2010 STUFF函数 详解

    '*************************************************************************'**模 块 名:自写函数VB6 STUFF函数 和 ...

  4. VB.NET中图像处理的一些技巧以及其和C#图像处理的差距。

    早期的时候我使用的开发工具是VB6,VB6做图像处理的速度在我的软件Imageshop中有所体现,还是算可以的.目前,我已经改用C#来研究图像算法,C#中有指针,做图像处理起来效率确实要高不少.VB. ...

  5. VB.NET中DataGridView控件

    VB.NET中对于表格数据的显示经常使用到DataGridView控件,其以丰富多样的数据表呈现形式被程序猿喜爱. 本人在做一个小系统中运用DataGridView控件的部分属性,这些功能的使用在使用 ...

  6. vb.net中存储过程的使用

    在机房收费系统过程中,试着使用了存储过程,离之前数据库的学习已经有些日子了.之前对于存储过程的了解也是听过而已,非常不清楚.因此,写这篇博客! 专业概念:存储过程是一个SQL语句和控制结构的集合,创建 ...

  7. VB.NET中网络编程所需组件WinHTTP的添加

    VB.NET中网络编程所需组件: WinHTTP组件:项目-->添加引用-->COM选项卡-->Microsoft WinHTTP Services,version 5.1--> ...

  8. 关于在VB.NET中调用使用VC++编写的类库dll的一点笔记

    前言 结对作业要求一出来,我就立刻想到了把“计算核心”封装成dll,然后使用vb.net编写UI调用dll的思路.然而在实现过程中却遇到了很多的问题. 我在这个过程中是负责使用vb.net编写UI并调 ...

  9. VB.NET中Module的概念

    今天学习VB.NET,发现VB.NET里面有一个Module的东西,如下图(图-1)所示: 图-1 上网查了一下VB.NET里面的Module,才发现这是学习VB.NET遇到的第一个典型的问题就是:为 ...

随机推荐

  1. BigInteger在Java8中的改进

    BigInteger在Java8里增加了一组方法: 123 public byte byteValueExact()public int intValueExact()public long long ...

  2. Java Web(转)

    struts2+spring+hibernate 上传文件 关 键字: s2sh 上传文件 struts2 spring hibernate 前段时间,我用struts2.1.6.spring2.5. ...

  3. JavaScript显示当前时间的代码

    方法一: <script type="text/javascript"> function startTime() { //获取当前系统日期 var today=new ...

  4. centos安装php-memcached扩展及cas用法

    一.安装libmemcachedwget https://launchpad.net/libmemcached/1.0/1.0.16/+download/libmemcached-1.0.16.tar ...

  5. PHP获取POST数据的几种方法汇总

    一.PHP获取POST数据的几种方法 方法1.最常见的方法是:$_POST['fieldname']; 说明:只能接收Content-Type: application/x-www-form-urle ...

  6. Maven-003-私人定制 maven archetype

    在使用 Maven 创建项目模块的时候,依据其默认的 archetype 模板,创建出的目录.及默认的单元测试工具为 JUnit 3.8.1,而且有些常用的资源文件目录.配置文件(例如:Log4J 的 ...

  7. Extjs 图片的自动缩放

    function resizeImage(obj) { var width = Ext.getCmp('welcome').getWidth(); //welcome 为一Panel的id 分割线下的 ...

  8. autoreleasepool自动释放池

     示例: @autoreleasepool { ; i[largeNumber; i++) { (因识别问题,该行代码中尖括号改为方括号代替) Person *per = [[Person alloc ...

  9. [翻译] java NIO Channel

    原文地址:http://tutorials.jenkov.com/java-nio/channels.html JAVA NIO channels和流的概念很像,下面是他们的一些区别: 你可以对cha ...

  10. 本地blast用法

    格式化数据库: makeblastdb -in db.fasta -dbtype prot -parse_seqids -out dbname 参数说明: -in:待格式化的序列文件 -dbtype: ...