题
我想将c#代码转换为j#,并设法克服了dllimport和marshalas。
问题是,当函数具有对对象的引用时-无法识别ref
公共静态本机int Mathod(ref类型,int标志);
任何人都有使用j#的经验,并且知道如何向方法发送引用(或在方法中定义类型作为引用)
解决方案
我很确定您不能直接这样做。
所有内容均在 real Java中按值传递,并且大概也在J#中传递。
在Java的最新版本中您可以使用AtomicReference
解决该限制,但我非常怀疑J#是否足以支持这一点。
您可以尝试更改方法签名以接受单个元素的Type[]
数组,然后对该数组元素进行突变。这将使您获得与ref
类似的结果。缺点是您需要更改调用位置和方法本身以包装和拆开数组中的变量。(尽管您可以创建自己的自定义类型来封装包装和展开(如果简化的话)。)
不隶属于 StackOverflow