我想将c#代码转换为j#,并设法克服了dllimport和marshalas。

问题是,当函数具有对对象的引用时-无法识别ref

公共静态本机int Mathod(ref类型,int标志);

任何人都有使用j#的经验,并且知道如何向方法发送引用(或在方法中定义类型作为引用)

有帮助吗?

解决方案

我很确定您不能直接这样做。

所有内容均在 real Java中按值传递,并且大概也在J#中传递。

在Java的最新版本中您可以使用AtomicReference解决该限制,但我非常怀疑J#是否足以支持这一点。

您可以尝试更改方法签名以接受单个元素的Type[]数组,然后对该数组元素进行突变。这将使您获得与ref类似的结果。缺点是您需要更改调用位置和方法本身以包装和拆开数组中的变量。(尽管您可以创建自己的自定义类型来封装包装和展开(如果简化的话)。)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top