问题标签 [pass-by-reference]

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 投票
5 回答
39199 浏览

c# - 了解 C# 事件对发送者对象的使用

我对 C# 作为一种语言(来自 C++ 背景)相当陌生,我目前正在编写一个使用事件驱动 API 的应用程序。

这主要包括注册事件/响应处理程序和启动事件监视器,然后处理这些异步事件/响应。

我有点难以理解的是发送者对象的使用。

我想使用它的目的是在发出请求(或设置监视器)时将句柄传递给我拥有的具有各种结构和数据的类对象。然后在收到响应/引发事件时,我可以获取发送者对象,将其转换回预期的类类型并访问成员,进行进一步更改等,因此将其视为仍然是指向原始数据的指针(我希望会是这样吗?)。

所以我的问题真的是,当我在请求中传递一个类对象时,这将是一个有效的引用,还是会按值复制它,因为它实际上只是一个通用对象,我最终会得到一个事件中我的类对象的空副本?

或者第三个选项,我可能完全走错了路,应该忘记整件事?:)

问题是我的大脑仍然在指针模式下工作,我认为......

0 投票
2 回答
9336 浏览

java - JNI通过引用传递,有可能吗?

我有一个调用 C++ 程序来验证用户身份的 Java 程序。我希望程序返回 true 或 false,如果为 false,则更新指向错误消息变量的指针,然后我可以从 Java 程序中获取该变量。

另一种解释:

本机方法看起来像这样:

public native String takeInfo(String nt_domain, String nt_id, String nt_idca, String nt_password, String &error);

我会在这里调用该方法:

boolean canLogin = takeInfo(domain, userID, "", userPass, String &error)

然后在我的 C++ 程序中,我将检查用户是否经过身份验证并将其存储在布尔值中,如果为 false,则获取错误消息并使用它更新 &error。然后将该布尔值返回给我的 Java 程序,在那里我可以显示错误或让用户通过。

有任何想法吗?

最初我有它,所以程序将返回“true”或错误消息,作为 jstring,但我的老板希望它如上所述。

0 投票
7 回答
4558 浏览

c - 在 C 中传递和修改 char 指针之间的混淆(引用与值)

我想知道您是否可以帮助我解决我不太了解的 C 字符串问题。我有一个向其发送 3 个字符指针的函数。在这个函数中,char 指针被正确地移动和修改。但是,当我返回调用它们的主函数时,所述函数并没有改变。我按值传递是错误的吗?这是我的代码示例:

注意:假设PATH_SIZE是一个大小值,并且START_PATH是一个字符数组

0 投票
7 回答
3390 浏览

java - Java:按引用传递 / ListIterator.add()

Java 不通过引用传递变量。在那种情况下,数据结构如何ListIterator更改其对应的列表?

这是我正在编写的示例迭代器:

但是当我尝试更改listadd(),它不会更改基础列表,因此以下测试失败:

OdpList add:我相信它是正确的,因为它通过了单元测试。

ListCell 构造函数:

OdpList 列表迭代器:

OdpList 包含:

我该怎么做呢?还是我误解了迭代器的工作原理?

0 投票
2 回答
117 浏览

php - php类中的某种变量问题

我班上有这个

当调用第二个函数时,php 错误数据类型错误,并且只能通过引用传递变量。

我不知道他们是什么意思

这段代码来自 php.net 如果相同的代码在类之外它执行得很好

如果我在课堂上工作,我在这里做错了什么?

php错误显示

谢谢,理查德

0 投票
3 回答
157 浏览

c++ - 为被破坏的东西分配一个 C++ 出引用?

所以我正在查看一些代码,我看到了这个:

这似乎 outVal 不再是一个有效的参考......但是,它似乎有效。

我以前也在其他代码中看到过,这有效吗?谢谢

0 投票
4 回答
1175 浏览

php - PHP 5.x 中的引用传递

我正在学习 Zend PHP5 认证,一切看起来都不错,但我找不到传递或返回变量的真实示例。

如果有人有什么时候使用这个的例子,那就太好了?

0 投票
3 回答
1776 浏览

c# - C# 和存储对方法参数的引用

对于一些背景信息,我有一个在循环中运行的应用程序,并且在任何时候它都会调用 Tick 方法。有一堆类扩展了一个基类,并且都有自己的 tick 方法,并被添加到依赖链中,这样当类 A 被调用并且它的链中有 B 和 C 的实例时,B.Tick 被调用,然后是 C.Tick,最后是 A.Tick。

所以在伪代码中,我的类看起来像这样:

B 工作正常,并且始终获得正确的值。问题是我猜你不能在一个类中存储对另一个变量的引用,所以当我做 new C(ref one); 并且C的构造函数将一个类变量设置为1,稍后在A中更新一个之后,就像C不再知道它仍然应该指向一个(现在已更新)并且只是空的(就像它最初一样在构造函数内部)。关于如何实现我想要做的事情,而不必使用 C# 指针和不安全代码的任何想法?谢谢,希望它有意义:)

编辑:显然人们无法用与实际问题完全无关的令人困惑的伪代码来回答问题,因此更改为:

编辑2:C类

0 投票
6 回答
715 浏览

php - 在 PHP5 中通过引用修剪字符串变量

我看到另一篇文章建议使用此语句来修剪数组中包含的字符串变量:

但是,如果首先,字符串不包含在数组中,我希望有一个可以像这样使用的修剪函数:

我试着写一个这样的函数:

但是如果没有成功,字符串变量在函数返回后不会被修剪。

为什么以及如何做到这一点?

0 投票
1 回答
4155 浏览

c# - 通过 ref 和 out

因此,如果我使用 foreach 循环进行迭代,并且内部有一个函数,该函数接受从列表中迭代的对象的参数,并假设我将其值设置为不同。为什么我不必使用 out 或 ref ?我认为它只有在你没有使用 out 或 ref 时才通过值传递。我知道一个 ref 你必须在之前初始化变量并且 out 你只需要在从方法返回之前设置它的值。

看起来如果你遍历一个列表并在其实际通过引用传递的对象中传递一个对象。考虑以下示例。

例子

输出:

SetFoo Pre: 1 SetFoo Inside: 1 ::
WithoutRef SetFoo Post: 1 WithoutRef
SetFoo Pre: 1 :: WithoutRef SetFoo
Inside: 1 :: WithoutRef :: WithRef
SetFoo Post: 1 WithoutRef :: WithRef

SetFoo Pre: 2 SetFoo Inside: 2 ::
WithoutRef SetFoo Post: 2 WithoutRef
SetFoo Pre: 2 :: WithoutRef SetFoo
Inside: 2 :: WithoutRef :: WithRef
SetFoo Post: 2 WithoutRef :: WithRef

SetI Pre: 0 SetI Inside: 2 SetIPost: 0

SetRefI Pre: 0 SetRefI Inside: 3
SetRefI Post: 3

我理解带有整数示例的 ref,但不理解上面的 Foo 对象迭代示例。

谢谢!