此问题与How does passing by reference really work in C#?
类似然而,细节是不同的。这个我真的只想知道它是如何实现的。
有2个意见。
通过引用传递与C ++类似。即我们实际上传递了一个自动引用的指针。
在vb.net中,通过引用传递的对象也很特殊,这意味着我们实际上将指针传递给指针并自动取消引用其中一个指针。
这是一个解释。
另一种解释是,通过引用传递实际上类似于传递值,除了当函数返回时,任何更改都会被复制回参数。
哪一个是对的?
是否传递对象或基本类型(如整数,字符串,双精度等)是否相同?
它是否如此"依赖于实现"没有办法知道哪一个是哪个?
答案 0 :(得分:0)
如果你传递了一个值,那么通过引用传递就像传递指向该值的指针一样。如果您正在传递一个引用,它基本上是一个tarted-up指针,那么通过引用传递就像将指针传递给指针一样。
按值传递值类型意味着方法内部所做的任何更改都不会影响原始变量。
通过引用传递值类型意味着对参数所做的更改不会影响原始值,但为参数指定新值会影响原始值。
按值传递引用类型意味着对参数所做的任何更改都会影响原始对象,但为参数指定新对象不会影响原始对象。
通过引用传递引用类型意味着在方法内进行的所有更改都会影响原始文件。