问题标签 [byval]

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 投票
0 回答
345 浏览

vba - 使用 ByVal VBA 时出错

在某些计算机中,当我使用 byVal 修饰符时会出现错误。我的代码中有一些,但我设法删除了所有这些,但我在以下代码中需要它:

我确信错误是由于 ByVal 造成的。我在更多功能中使用了 ByVal,但它们没有工作,但是当我以另一种方式(不使用 ByVal)进行操作时,它们可以工作,如果我只是删除这个函数,所有其他函数都可以正常工作。我无法理解原因。

另一个奇怪的事情是它只发生在某些计算机上(Win8,office 2013)。但我有相同的操作系统、办公和安全设置。它给出的错误是编译错误:

“隐藏模块中的编译错误:Module4”

0 投票
1 回答
1164 浏览

vba - VBA 事件中的 ByVal

我正在尝试在 VBA 上取得一些进展

我知道这是非常基本的,但在工作表事件中,例如更改

我已经在此链接中搜索了 ByVal 的含义

我无法从帮助中的这个解释中得到意义

指定以这样一种方式传递参数,即被调用的过程或属性不能更改调用代码中参数基础的变量的值。

女巫真的把我搞糊涂了……

我还在各种来源中进行了搜索,发现了这种不同的解释,使我更深地陷入了黑暗……它是这样的:

如果您不希望被调用过程修改作为参数传递的任何变量,则可以修改被调用过程的参数列表,以便通过值而不是通过引用将参数传递给它。为此,请在参数前面加上 ByVal 关键字。这种技术使被调用的例程使用传递的变量数据的副本——而不是数据本身。

他的意思是“参数是通过值而不是通过引用传递给它的”?你能用简单的方式解释一下 ByVal 的作用吗?我在编写代码时经常使用它,并且我想知道我正在编写的每一段代码。

0 投票
3 回答
1015 浏览

vb.net - 将结构作为 ByValue 传递给过程,但是过程会更改原始结构值

我想问一些关于 VB.NET 代码的问题。我深受这个问题的困扰。如果您知道我的问题的解决方案,请回答我或给我一些意见。


0 投票
1 回答
14156 浏览

vba - 集合对象 - ByRef - ByVal

我在 Access 2013 中使用 VBA。

在常规模块中有 2 个过程,RunProc()并且PopulateCollection()

执行时RunProc,它调用PopulateCollection其中传递的参数是一个名为的集合实例MyCol

PopulateCollection添加 3 个项目,然后RunProc通过迭代集合继续。

我的问题/问题是这样的:

我希望参数不被MyCol. 实现此目的的正确方法是什么?RunProcPopulateCollection

为什么PopulateCollection同时填充参数和参数?


这是问我问题的另一种方式:

0 投票
1 回答
42 浏览

.net - 从公共子(模块)获取 DialogResult

我不知道要搜索什么关键字。

这是在我的应用程序的一个模块上。

现在我想在表单上使用它。所以当我点击Confirm

但它没有给我任何回报..我没有得到回应。我不知道如何编码,你能找出问题所在吗?

0 投票
1 回答
1230 浏览

vb.net - ByVal 如何处理 vb.net 中的对象?

我的问题是关于在 vb.net 中使用 ByVal 的概念。

这是代码:

在上面的代码片段中,我在 GetManipulateDetails 函数中将 tObject1 作为 ByVal 发送,当此子例程中的值发生更改时,返回的对象会操纵传递的实际对象。即,如果我在 ManipulateDetails 方法中快速观察对象,我可以看到被操纵的细节。此外,如果我在子例程函数中返回对象,则值将反映在传递的原始对象中。

因为即使没有从函数 GetManipulateDetails 返回对象,值也会发生变化,我很困惑这是否是因为 ByRef?或者还有其他一些机制正在使这项工作。

0 投票
0 回答
281 浏览

.net - 事件:在集合中找不到键“参数名称”

考虑以下方法:

流量

1) 如果action == "Go"那么程序应该使用r.Cells("item_id")(example = "000123456") 创建一组参数 ( GoActionEventArgs) 以传递给我的事件 ( BeginGoAction)。直到此时r.Cells("item_id")仍然存在并包含值。

2)在事件被触发并且与该事件相关的所有动作都被执行之后,程序应该开始一个工作流。允许跨不同应用程序完成操作。因此它需要item_iditem_type存储在我的r.Cells. 除了突然之间R.Cells.Count() = 0,它不再包含item_iditem_type

问题: 如何仅仅因为一个事件被触发而r.Cells从包含值(item_id, item_type,...)变成一个空集合?r.Cells由于该事件对其所在的网格或网格没有影响r

请注意,这是基于现有代码的伪代码。如有错别字请见谅...

注意 2:该事件不会清除(或与)网​​格(或与网格有任何交互)。它对不同的 web 服务/数据库执行一组微妙的操作。代码太长(所有方法组合),无法在此处发布。

额外信息:

构造函数 GoActionEventArgs:

事件 BeginGoAction:

0 投票
2 回答
1214 浏览

vb.net - 参数将 ByVal 传递给 VB.NET 函数并在那里进行操作

在这个 Microsoft 示例中,一个 Doubles 数组被传递给函数MultiplyMatricesSequential(...),并使用修饰符MultiplyMatricesParallel(...)作为参数结果:http: //msdn.microsoft.com/de-de/library/dd460713 (v=vs.110).aspxByVal

数组中的值在这些函数中被修改,并且在函数调用返回后更改可用。当我更改ByValByRefin 函数MultiplyMatricesSequential(...)时,没有任何变化,当我更改为ByRef第二个函数时,IDE 抱怨在 Lambda 表达式中操作的参数不能通过引用传递。

ByVal我现在想知道当强制使用时,调用者中的数组值如何变化?

0 投票
2 回答
421 浏览

vba - 在 VBA 中使用 ByVal

在我必须编写的插值方案中,我需要一个最小值和最大值函数,因此我快速编写了从我的插值函数中调用的函数 Min 和 Max。它看起来像这样:

但是,运行代码会提示“byref 参数类型不匹配”错误。事实证明,我必须通过将 ByVal 添加到函数参数来明确我传递值而不是引用:

现在我有两个问题:

  • 我惊讶地发现我需要明确按值传递。在 C++ 中,函数变量默认按值传递。我是否应该得出结论,VBA 默认通过引用传递变量?
  • 为什么将 Byval 添加到函数参数中会有所帮助?我没有看到类型之间的关系(因为错误应该是关于)和按值和/或引用传递....

提前谢谢了。

0 投票
2 回答
128 浏览

c++ - c ++函数按值调用不起作用

我对这段代码有疑问:

问题是当我看到原始图像时,它被“borrarFondo()”修改,但是这个函数是从“segmentarHoja”调用的,这里按值输入 img,但 img 修改了。

我不想更改原始图像