问题标签 [paramarray]

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 投票
2 回答
2995 浏览

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

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

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

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

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

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

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

0 投票
2 回答
12844 浏览

excel - ParamArray ArgList() 中可变数量的参数

如果我想通过数组为 ParamArray arglist 传递多个值,我该怎么做?从我目前阅读的内容来看,在 VBA 上,我似乎需要明确列出我想要传递的值。但是,如果可能有不同数量的值要传递,所以我事先不知道要传递给函数的值是多少?有没有某种方法可以使用具有可变维度的数组(一维数组)?

0 投票
2 回答
3649 浏览

vb.net - 代表和 ParamArray - 解决方法建议?

一些预定义的方法在其签名中包含一个ParamArray 。但是,代表不能在其签名中包含 ParamArray。

问题:假设您希望为需要 ParamArray 的特定方法创建委托机制。你将如何解决这个限制?

编辑:为了清楚起见,假设您不能更改方法签名本身(预定义的方法,由某些第 3 方定义,无论是否是 Microsoft)。

EDIT2:这里真正的交易是保留语法糖,因为下面的代码确实有效,但消除了糖:

EDIT3:事实证明,Skeet 的解决方案也适用于创建包含 ParamArray 的事件和运算符。

0 投票
1 回答
1028 浏览

.net - ParamArray 不适用于 COM

我有一个像这样暴露给 COM 的类库:

然后我使用 regasm /tlb /codebase 来注册它。所有方法和属性似乎在 VBA/VB6 中都能正常工作,但是当我尝试使用 ParamArray 访问方法时,它不会编译事件。我得到错误:

编译错误:

标记为受限的函数或接口,或函数使用 Visual Basic 中不支持的自动化类型。

我需要做什么才能正确公开此方法,以便我可以这样使用它?:

0 投票
4 回答
1235 浏览

vb.net - 如何实现一个接受泛型参数的参数数组(可变数量的参数)的函数

我在这里看到了一个问题,他们实现了一个通用的 dispose 方法,该方法采用任何 IDisposable 对象并对其调用 dispose 。我想让它可以采用可变数量的参数。但是,我确实想在编译时将 args 限制为 IDisposable。(这是因为我组织中的某些人最终会在非 IDisposable 对象上调用此方法“只是为了安全”和“它不会造成伤害”)

我已经像这样在VB中实现了相同的功能。我怎样才能让它需要多个参数。请注意,我确实希望它们通过引用传递,因为我将变量设置为空。

0 投票
4 回答
16355 浏览

asp.net-mvc - 使用 jQuery ajax/load 提交数组参数

public ActionResult DoSomething(string[] arr, bool someBool, int someInt) { }

尝试从 jQuery 调用上述方法:

数组参数为空,其他参数都可以。我究竟做错了什么?

Chrome 开发者工具显示表单数据被提交为

不知道那里发生了什么,但对我来说看起来不对

0 投票
3 回答
2286 浏览

vb.net - 使用 ParamArray ByRef

有什么方法可以使用 ParamArray ByRef 吗?除此之外,是否有一种解决方法可以完成同样的事情?

我可以做一些超载,但我试图避免笨拙。

背景:移植一些旧代码,并尽可能保持相同的结构。


编辑

我想要的一个具体例子:

我在 turboBasic 中有一些代码要移植到 vb.net。该代码具有内置功能,例如

Input() 获取文件 #1 并从中读取三段数据并将其分配给所示的三个变量。我想用我自己的 Input() 函数复制这种行为。为此,我将如何接受三个(或更多,或更少)变量并为它们赋值?

理想情况下,我只需修改我自己的 Input() 定义即可完成此操作,因此我可以尽可能少地在代码库中添加垃圾。

0 投票
3 回答
2298 浏览

vb.net - 如何将动态数量的元素传递给接受 ParamArray 的方法

我有一个需要调用的方法,它接受一个 ParamArray

我需要根据 XmlDocument 中可变数量的 XmlNode 向它传递两个已知字符串和未知数量的字符串

IE

我怎样才能做到这一点?

我尝试遍历节点并创建和传递:

List(Of String)这导致elements()包含"Known String 1", "Known String 2", System.Collections.Generic.List[System.String]

List(Of String).ToArray这导致elements()包含"Known String 1", "Known String 2", System.String[]

String()这导致elements()包含"Known String 1", "Known String 2", System.String[]

Collection这导致elements()包含"Known String 1", "Known String 2", Microsoft.VisualBasic.Collection

我想要的,例如 3 个节点是elements()包含"Known String 1", "Known String 2", "<node 1>", "<node 2>", "<node 3>"

这可能吗?

0 投票
1 回答
118 浏览

c# - 将其缩短为一个函数

该程序将 WMI 数据组织成一组类 - 计算机中的每个硬件元素一个类 - 如果存在多个特定硬件元素,则每个类被初始化多次。

有没有一种巧妙的方法可以将这部分代码转换为几个函数调用?我正在考虑一些类似于CreateComponent(ref object dataClass, params string[] WMIClasses);初始化计算机组件的方法,而不是使用 WMI 数据的临时存储并创建一个 for 循环来添加每个实例。

0 投票
1 回答
1264 浏览

vb.net - 字符串到双数组

我需要接受这个字符串:

并将其转换为双数组:

我该怎么做呢?

仅供参考 arrNumOfVisits 进入ParamArray System.Collections.IEnumerable()

大卫