通过值传递参数和通过引用传递参数之间的差异 (Visual Basic)
2017-11-14 10:31
232 查看
通过值传递参数和通过引用传递参数之间的差异 (Visual Basic)
将一个或多个参数 (Argument) 传递给过程时,每个参数分别对应于调用代码中的一个基础编程元素。 您可以传递此基础元素的值,也可以对其进行引用。 这被称为“传入机制”。
通过值传递
通过在过程定义中为相应的参数 (parameter) 指定 ByVal (Visual Basic) 关键字,可以通过值传递参数 (argument)。 使用此传入机制时,Visual
Basic 将此基础编程元素的值复制到过程中的一个局部变量中。 过程代码不具有任何访问调用代码中的基础元素的权限。
通过引用传递
通过在过程定义中为相应的参数 (parameter) 指定 ByRef (Visual Basic) 关键字,可以通过引用传递参数
(argument)。 使用此传入机制时,Visual Basic 使过程直接引用调用代码中的基础编程元素。
传入机制和元素类型
选择传入机制不同于将基础元素类型分类。 通过值传递或通过引用传递是指 Visual Basic 向过程代码提供什么操作。 而值类型或引用类型是指编程元素将以何种方式存储在内存中。
但是,传入机制和元素类型又相互关联。 引用类型的值是一个指针,它指向内存中其他位置的数据。 这意味着在通过值传递引用类型时,过程代码具有一个指向基础元素的数据的指针(即使它不能访问基础元素本身)。 例如,如果此元素为数组变量,过程代码将不具有访问该变量的权限,但它可以访问数组成员。
修改能力
将不可修改元素作为参数传递时,过程永远不能在调用代码中修改它,不论它的传入机制是 ByVal 还是 ByRef。
对于可修改元素,下表概括了元素类型与传入机制之间的相互作用。
将一个或多个参数 (Argument) 传递给过程时,每个参数分别对应于调用代码中的一个基础编程元素。 您可以传递此基础元素的值,也可以对其进行引用。 这被称为“传入机制”。
通过值传递
通过在过程定义中为相应的参数 (parameter) 指定 ByVal (Visual Basic) 关键字,可以通过值传递参数 (argument)。 使用此传入机制时,Visual
Basic 将此基础编程元素的值复制到过程中的一个局部变量中。 过程代码不具有任何访问调用代码中的基础元素的权限。
通过引用传递
通过在过程定义中为相应的参数 (parameter) 指定 ByRef (Visual Basic) 关键字,可以通过引用传递参数
(argument)。 使用此传入机制时,Visual Basic 使过程直接引用调用代码中的基础编程元素。
传入机制和元素类型
选择传入机制不同于将基础元素类型分类。 通过值传递或通过引用传递是指 Visual Basic 向过程代码提供什么操作。 而值类型或引用类型是指编程元素将以何种方式存储在内存中。
但是,传入机制和元素类型又相互关联。 引用类型的值是一个指针,它指向内存中其他位置的数据。 这意味着在通过值传递引用类型时,过程代码具有一个指向基础元素的数据的指针(即使它不能访问基础元素本身)。 例如,如果此元素为数组变量,过程代码将不具有访问该变量的权限,但它可以访问数组成员。
修改能力
将不可修改元素作为参数传递时,过程永远不能在调用代码中修改它,不论它的传入机制是 ByVal 还是 ByRef。
对于可修改元素,下表概括了元素类型与传入机制之间的相互作用。
https://msdn.microsoft.com/zh-cn/library/eek064h4(v=vs.100).aspx
将一个或多个参数 (Argument) 传递给过程时,每个参数分别对应于调用代码中的一个基础编程元素。 您可以传递此基础元素的值,也可以对其进行引用。 这被称为“传入机制”。
通过值传递
通过在过程定义中为相应的参数 (parameter) 指定 ByVal (Visual Basic) 关键字,可以通过值传递参数 (argument)。 使用此传入机制时,Visual
Basic 将此基础编程元素的值复制到过程中的一个局部变量中。 过程代码不具有任何访问调用代码中的基础元素的权限。
通过引用传递
通过在过程定义中为相应的参数 (parameter) 指定 ByRef (Visual Basic) 关键字,可以通过引用传递参数
(argument)。 使用此传入机制时,Visual Basic 使过程直接引用调用代码中的基础编程元素。
传入机制和元素类型
选择传入机制不同于将基础元素类型分类。 通过值传递或通过引用传递是指 Visual Basic 向过程代码提供什么操作。 而值类型或引用类型是指编程元素将以何种方式存储在内存中。
但是,传入机制和元素类型又相互关联。 引用类型的值是一个指针,它指向内存中其他位置的数据。 这意味着在通过值传递引用类型时,过程代码具有一个指向基础元素的数据的指针(即使它不能访问基础元素本身)。 例如,如果此元素为数组变量,过程代码将不具有访问该变量的权限,但它可以访问数组成员。
修改能力
将不可修改元素作为参数传递时,过程永远不能在调用代码中修改它,不论它的传入机制是 ByVal 还是 ByRef。
对于可修改元素,下表概括了元素类型与传入机制之间的相互作用。
将一个或多个参数 (Argument) 传递给过程时,每个参数分别对应于调用代码中的一个基础编程元素。 您可以传递此基础元素的值,也可以对其进行引用。 这被称为“传入机制”。
通过在过程定义中为相应的参数 (parameter) 指定 ByVal (Visual Basic) 关键字,可以通过值传递参数 (argument)。 使用此传入机制时,Visual
Basic 将此基础编程元素的值复制到过程中的一个局部变量中。 过程代码不具有任何访问调用代码中的基础元素的权限。
通过在过程定义中为相应的参数 (parameter) 指定 ByRef (Visual Basic) 关键字,可以通过引用传递参数
(argument)。 使用此传入机制时,Visual Basic 使过程直接引用调用代码中的基础编程元素。
选择传入机制不同于将基础元素类型分类。 通过值传递或通过引用传递是指 Visual Basic 向过程代码提供什么操作。 而值类型或引用类型是指编程元素将以何种方式存储在内存中。
但是,传入机制和元素类型又相互关联。 引用类型的值是一个指针,它指向内存中其他位置的数据。 这意味着在通过值传递引用类型时,过程代码具有一个指向基础元素的数据的指针(即使它不能访问基础元素本身)。 例如,如果此元素为数组变量,过程代码将不具有访问该变量的权限,但它可以访问数组成员。
将不可修改元素作为参数传递时,过程永远不能在调用代码中修改它,不论它的传入机制是 ByVal 还是 ByRef。
对于可修改元素,下表概括了元素类型与传入机制之间的相互作用。
元素类型 | 传入机制为 ByVal | 传入机制为 ByRef |
---|---|---|
值类型(仅包含值) | 过程不能更改变量或它的任何成员。 | 过程能够更改变量及其成员。 |
引用类型(包含指向类或结构实例的指针) | 过程不能更改变量,但可以更改它指向的实例的成员。 | 过程能够更改变量和它指向的实例的成员。 |
通过在过程定义中为相应的参数 (parameter) 指定 ByVal (Visual Basic) 关键字,可以通过值传递参数 (argument)。 使用此传入机制时,Visual
Basic 将此基础编程元素的值复制到过程中的一个局部变量中。 过程代码不具有任何访问调用代码中的基础元素的权限。
通过在过程定义中为相应的参数 (parameter) 指定 ByRef (Visual Basic) 关键字,可以通过引用传递参数
(argument)。 使用此传入机制时,Visual Basic 使过程直接引用调用代码中的基础编程元素。
选择传入机制不同于将基础元素类型分类。 通过值传递或通过引用传递是指 Visual Basic 向过程代码提供什么操作。 而值类型或引用类型是指编程元素将以何种方式存储在内存中。
但是,传入机制和元素类型又相互关联。 引用类型的值是一个指针,它指向内存中其他位置的数据。 这意味着在通过值传递引用类型时,过程代码具有一个指向基础元素的数据的指针(即使它不能访问基础元素本身)。 例如,如果此元素为数组变量,过程代码将不具有访问该变量的权限,但它可以访问数组成员。
将不可修改元素作为参数传递时,过程永远不能在调用代码中修改它,不论它的传入机制是 ByVal 还是 ByRef。
对于可修改元素,下表概括了元素类型与传入机制之间的相互作用。
元素类型 | 传入机制为 ByVal | 传入机制为 ByRef |
---|---|---|
值类型(仅包含值) | 过程不能更改变量或它的任何成员。 | 过程能够更改变量及其成员。 |
引用类型(包含指向类或结构实例的指针) | 过程不能更改变量,但可以更改它指向的实例的成员。 | 过程能够更改变量和它指向的实例的成员。 |
将一个或多个参数 (Argument) 传递给过程时,每个参数分别对应于调用代码中的一个基础编程元素。 您可以传递此基础元素的值,也可以对其进行引用。 这被称为“传入机制”。
通过在过程定义中为相应的参数 (parameter) 指定 ByVal (Visual Basic) 关键字,可以通过值传递参数 (argument)。 使用此传入机制时,Visual
Basic 将此基础编程元素的值复制到过程中的一个局部变量中。 过程代码不具有任何访问调用代码中的基础元素的权限。
通过在过程定义中为相应的参数 (parameter) 指定 ByRef (Visual Basic) 关键字,可以通过引用传递参数
(argument)。 使用此传入机制时,Visual Basic 使过程直接引用调用代码中的基础编程元素。
选择传入机制不同于将基础元素类型分类。 通过值传递或通过引用传递是指 Visual Basic 向过程代码提供什么操作。 而值类型或引用类型是指编程元素将以何种方式存储在内存中。
但是,传入机制和元素类型又相互关联。 引用类型的值是一个指针,它指向内存中其他位置的数据。 这意味着在通过值传递引用类型时,过程代码具有一个指向基础元素的数据的指针(即使它不能访问基础元素本身)。 例如,如果此元素为数组变量,过程代码将不具有访问该变量的权限,但它可以访问数组成员。
将不可修改元素作为参数传递时,过程永远不能在调用代码中修改它,不论它的传入机制是 ByVal 还是 ByRef。
对于可修改元素,下表概括了元素类型与传入机制之间的相互作用。
元素类型 | 传入机制为 ByVal | 传入机制为 ByRef |
---|---|---|
值类型(仅包含值) | 过程不能更改变量或它的任何成员。 | 过程能够更改变量及其成员。 |
引用类型(包含指向类或结构实例的指针) | 过程不能更改变量,但可以更改它指向的实例的成员。 | 过程能够更改变量和它指向的实例的成员。 |
相关文章推荐
- c#中通过值和引用传递参数(downmoon)
- 通过2个实例分析java参数传递时按值传递还是按引用传递
- 通过引用向方法传递参数(使用out和ref参数)
- 黑马程序员-通过“值”和通过“引用”传递引用参数
- 如何使用js来实现通过href完成多个html页面之间的传递参数
- c#中通过值和引用传递参数
- 通过给事件处理程序传递this参数,获取事件源对象的引用。单机提交按钮时在信息框中显示用户输入的字符。
- 通过值传递引用类型和通过引用传递引用类型参数的区别
- 在PowerShell中通过引用传递参数
- 二十二:通过引用向方法传递参数(使用out和ref参数)
- Android Fragment之间参数传递通过Activity中的变量
- C#中通过值和引用传递参数
- c#中通过值和引用传递参数(downmoon)
- c#中通过值和引用传递参数
- [转]c#中通过值和引用传递参数
- Android Fragment之间参数传递通过使用bundle进行参数传递
- 在PowerShell中通过引用传递参数
- c#中通过值和引用传递参数
- PHP通过引用传递参数用法分析
- PHP通过引用传递参数