Java 和 C# 方法的返回类型是按引用还是按值?我真的很困惑,需要一些解释。
谢谢你们。
在 Java中,一切都是按值返回的。这包括参考资料,这就是混乱的地方!
如果我有:
Trade t = new Trade();
thent
是一个引用(我们会说它是一个Trade,但它指的是类型。t
确实是一个引用)。当我从方法返回它时,我按值返回引用。引用仍然指向那个原始对象。
因此,如果我t
从一个方法返回它,然后对其调用另一个方法,它会调用Trade
它最初指向的方法。
C# 可以通过值或引用返回结果 - 这取决于您如何定义方法。
Java 只能按值返回(或者严格来说,按值返回引用。)
正如这个小小的记忆口号在 HeadFirst Book 中出现的那样。
Roses are Red,
This poem is Choppy,
Passing By Value is
Passing By Copy.
在Java
其始终传递或返回的值中。
其中C#
可以通过引用或复制返回。