使用Paramarray Byref
-
30-09-2019 - |
题
有什么方法可以使用Paramarray Byref?除非这样,否则它可以解决同样的事情吗?
我可以做一些过载,但是我试图避免笨拙。
背景:移植一些旧代码,并尝试尽可能保持相同的结构。
编辑
我想要的特定示例:
我有一些涡轮上的代码,可以移植到vb.net。该代码具有诸如
Input#1,Data$(I%,1),Data$(I%,2),Data$(I%,3)
其中输入()获取文件#1并从中读取三个数据,并将其分配给所示的三个变量。我想用自己的输入()函数复制此行为。为此,我该如何摄入三个(或更长时间)变量并为它们分配值?
理想情况下,我将仅修改自己对输入()的定义来实现这一目标,这样我就可以尽可能少地在代码库中进行混乱。
解决方案
我从未使用过涡轮质,但语法看起来与VB6相同 输入#语句, ,所以我猜这些语义也一样。
此VB6代码
Input #1,Data$(I%,1),Data$(I%,2),Data$(I%,3)
等同于这个vb.net
Input(1,Data$(I%,1))
Input(1,Data$(I%,2))
Input(1,Data$(I%,3))
VB.NET升级向导转换VB6 Input #
这样的陈述。我只会将代码移植,而不是实现自己的功能。从VB6转换为VB.NET需要在代码库中进行大量编辑,我希望Turbobasic更加要求更高。
其他提示
除非您将参数分配给新数组实例,并期望呼叫者(通过变量或字段)查看新实例,则不需要 ByRef
.
即使没有 ByRef
, ,呼叫者仍将看到对数组内容的更改。 (数组是参考类型)。
如果你看不到 parameterName = something
在方法中,您不需要 ByRef
.
一个 ParamArray
参数将其传递一个隐式创建的数组。
在这样的用法中 ByRef
没有任何效果。
当前无法通过vb.net中的参考传递Paramarrays。要将一系列指定值传递给接受paramarray的方法,CLR用指定的值填充了适当长度的数组,然后将此数组传递到您所调用的方法中。无法将所有值从传递的数组中复制并回到原始变量中。
我认为您是从vb6移植代码 只要 传递Paramarrays的方法是参考,但是您不需要在.NET中使用此功能。