问题标签 [ref-parameters]

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 回答
468 浏览

c# - 如何在方法中向下转换 ref 变量

我需要在 long 作为 ref 变量传递的方法中将 long 向下转换为 int:

我怎样才能轻松做到这一点?

0 投票
10 回答
11789 浏览

c# - 为什么'ref'和'out'不支持多态性?

采取以下措施:

为什么会出现上述编译时错误?refout参数都会发生这种情况。

0 投票
4 回答
8195 浏览

c# - 为什么匿名方法中不允许使用 out 参数?

这不是从匿名方法调用带有 ref 或 out 参数的方法的骗局

我想知道为什么匿名方法中不允许使用 out 参数。不允许ref参数对我来说更有意义,但out参数没有那么多。

你对此有何看法

0 投票
2 回答
1590 浏览

c# - C# 'out' 或 'ref' 参数的值何时实际返回给调用者?

out当我对or参数进行赋值时ref,是立即将值分配给调用者提供的引用,还是在方法返回时将outandref参数值分配给引用?如果方法抛出异常,是否返回值?

例如:

0 投票
4 回答
10350 浏览

c# - 将显式转​​换作为 ref 参数传递 (C#)

我有一个类,它主要是一个大数组和一些相关的家务的包装器。我有一个带有 ref 参数的函数。当我将类的实例传递给函数时,我希望发送数组。

我考虑了明确的演员表。假设我有一些具有 byte[] ref 参数的函数。

而且我有一些带有重载显式强制转换的类。

现在我想用类作为参数调用函数

编译器抱怨“一个 ref 或 out 参数必须是一个可分配的变量”。我不确定我是否只是未能正确按摩编译器,或者您是否真的不能这样做。

我考虑了一个属性或函数的返回值,但你不能通过 ref 传递它们(并且在教育自己之后我明白为什么......)

我不想让数组成为公共字段,但这确实让编译器满意。我我可以创建一个局部变量来引用数组,但这是每个函数调用之前和之后的额外代码行......

编辑:可能值得注意的是 SomeFunction 是由第三方编写的,我无权更改它。更糟糕的是,我认为他们的参数实际上不需要参考......

0 投票
3 回答
2582 浏览

java - 可以修改(写回)参数的函数和方法的良好命名约定

我需要为处理“值数组”的例程找到一个好的且易于理解的命名方案(我valarray在 Java 中编写了类似于 C++ 的东西,并考虑了对原始类型的一些优化)

我知道例程的主要分类是:

  • 函数(它们可能带有参数并且必须返回一些东西)
  • 方法(它们可能接受参数并且不返回任何内容)

出于性能原因,我不仅允许将威胁其参数的函数/方法定义为只读,还允许将可能修改其第一个参数的函数/方法定义为。

这样一个人不仅可以做到这一点......:

......还有这个:

请为这些类型的例程建议一个命名方案:

  • 将所有参数视为只读的函数
  • 可能修改其第一个参数的函数
  • 将所有参数视为只读的方法
  • 可能修改其第一个参数的方法

我想过像 ModifyingMethod、NonModifyingMethod 或类似的东西,但我认为这些名称不够简单,而且太长。

0 投票
6 回答
545 浏览

c# - 在什么情况下'out' 参数有用(不能使用'ref' 代替)?

据我所知,out参数的唯一用途是调用者可以从单个方法调用中获取多个返回值。但是我们也可以使用ref参数来获取多个结果值!

那么在其他情况下,out参数可以证明是有用的,而我们不能使用ref参数来代替吗?

谢谢你。

0 投票
3 回答
2948 浏览

f# - 如何将输出/引用外部参数转换为 F#

我有一个 C# extern 声明,如下所示:

如何将其翻译为 F#?

0 投票
4 回答
640 浏览

c# - How to convert recursive procedure with side effects on ref param to recursive function returning a list?

It seems every time I go to write a recursive function I end up making it return void and using a ref parameter.

I'd much rather be able to write a function that just returns a result list.

Apologies if the answer is very simple - for some reason it elludes me.

Here's the code I have now:

I'd like to know if it can be rewritten to the prototype:

0 投票
4 回答
269 浏览

c# - c# 中带有 ref 参数的堆栈会发生什么?

我正在阅读一些关于 WCF 和 IDispatchMessageInspector 的 C# 文档,并且该接口定义了一个通过引用传递的“消息”对象,以便可以对其进行操作。

当您通过 ref 传递某些东西而不是正常传递时,堆栈上实际发生了什么?