问题标签 [byref]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
10 回答
17939 浏览

.net - 最佳实践:ByRef 还是 ByVal?在.Net

在 ByRef 和 ByVal 之间进行选择时需要考虑哪些事项。

我了解两者之间的区别,但我不完全了解 ByRef 是否可以节省资源,或者我们是否甚至需要在 .Net 环境中担心这一点。

如果功能在某种情况下无关紧要,您如何在两者之间做出决定?

0 投票
6 回答
7942 浏览

actionscript-3 - 您可以在 AS3 函数中使用“ByRef”参数吗?

知道如何从 ActionScript 3 中的函数返回多个变量吗?

像 VB.NET 这样您可以修改输入参数的变量(ByRef 参数)吗?


除了返回关联数组之外还有什么?

0 投票
7 回答
27699 浏览

vb.net - 哪个更快?ByVal 还是 ByRef?

在 VB.NET 中,哪个更快用于方法参数,ByVal或者ByRef

此外,哪个在运行时(RAM)消耗更多资源?


我通读了这个问题,但答案并不适用或不够具体。

0 投票
2 回答
2995 浏览

vb.net - 有什么方法可以将 ParamArray 值处理为 byRef 以便可以更新它们?

听起来很简单,但它不起作用。在此示例中,我想将 3 个字段的值设置为第 4 个。我可以做这样的事情......

...但这有点罗嗦(是的,我知道,vb 在大多数情况下都是罗嗦的)。我想有一些东西可以用来减少单行调用,所以我做了这个扩展方法。

看起来很简单,对吧?嗯,输出是这样的……

参数数组中的值没有在返回中更新!我期待现在所有的最终值都是“1”,就像它们在函数中一样。

有没有办法获得这样的可更新 ParamArray 集合?ParamArray 必须声明为 ByVal,但使用像 String 这样的引用类型,难道不应该只复制指针并允许我更改基础值吗?

有没有更好的方法来得到我想要的?(C# 不是这个选项)。

0 投票
3 回答
950 浏览

vb.net - := 语法有什么用?

我是一名从事 VB.NET 项目的 C# 开发人员,当我调用带有 ByRef 参数的函数时,VS 一直试图让我使用 := thingie,如下所示:

HydrateBookFromReader 函数具有以下签名:

为什么智能感知一直坚持我使用 := 构造,它是做什么用的?

0 投票
2 回答
4547 浏览

c++ - 将经典 ASP VBScript 参数 ByRef 传递给 COM c++

这很简单。有一个 c++ 函数使用 ByRef 参数同时返回三个变量。

但是,调用 c++ 函数时,VBScript ASP 代码似乎没有获取 bShares、bRunOnly 和 bCopy 的新值。

我能做些什么来解决这个问题吗?谁能解释为什么会这样?

0 投票
2 回答
334 浏览

c# - 不同的参考问题使用一个简单的=

我对 by ref 问题有一个变体。我知道所有关于使用 ref 或我们的参数调用以及它如何影响变量及其值的知识。我对 DataTable 有这个问题,我想知道为什么数据表不同于简单的整数变量。

我有关于如何解决问题的物理答案,但我想知道它为什么会这样工作。

如果您使用简单的变量,它会达到我的预期

它在控制台中显示 1,5。

但是,如果您对 DataTable 做同样的事情,它会引用第一个数据表而不是新值:

控制台显示:StringCol StringCol123 Test Test

通过说 mVar4 = mVar3 它使 mVar4 成为对 mVar3 的引用。

这个问题的解决方法是说

所以我的问题是:是什么导致数据表的执行与简单的整数字段不同。为什么当我使用 mVar4 = mVar3 而不是 DataTable 的不同副本时它会创建一个引用?

0 投票
6 回答
11061 浏览

vb.net - VB.NET:如果我将 String ByVal 传递给函数但不更改字符串,内存中是否有一个或两个字符串?

我知道字符串是不可变的,所以当您更改字符串引用的值时,.NET 会在堆上创建一个全新的字符串。

但是如果你不改变字符串引用的值呢?相反,您只需将它传递给一个函数ByVal——这个操作是否也会复制堆上的字符串值?我的倾向是“不”,但我想确认一下。

例如:

调用程序:

我知道myWord按值传递会复制对“Blah”的引用,但由于我没有尝试更改字符串本身,它会在堆上制作另一个字符串副本吗?

0 投票
5 回答
1499 浏览

php - PHP中的原始数据类型是通过引用传递的吗?

在 PHP 中,我经常做大量的字符串操作。是否可以将我的代码拆分为多个函数,因为如果像字符串这样的原始类型按值传递,我会显着影响性能。

0 投票
3 回答
13074 浏览

c# - C# 扩展方法不允许通过引用传递参数吗?

在 C# 中创建实例作为引用传递的扩展方法真的不可能吗?

这是一个示例 VB.NET 控制台应用程序:

注意 Value 参数是通过 ByRef 传递的。

并且(几乎)在 C# 中相同:

Add扩展方法在 C# 中不起作用,因为我不能使用关键字ref。有什么解决方法吗?