J#オブジェクトリファレンス
質問
c#コードをj#に変換したかったのですが、どういうわけかdllimportとmarshalasを乗り越えることができました。
問題は、関数にオブジェクトへの参照がある場合、refが認識されないことです
public static native int Mathod(ref Type type、int flags);
誰でもj#の経験があり、メソッドへの参照を送信する方法(またはメソッド内の型を参照として定義する方法)を知っています
解決
これを直接行うことはできないと確信しています。
すべては実際の Javaでは値で渡され、おそらくJ#でも渡されます。
最近のバージョンのJava では、AtomicReference
を使用して制限を回避できます。ですが、J#がこれをサポートするのに十分なほど最新であるかどうかは非常に疑わしいです。
メソッドシグネチャを変更して、単一要素のType[]
配列を受け入れてから、その配列要素を変更してみてください。これにより、ref
と同様の結果を得ることができます。欠点は、配列内の変数をラップおよびアンラップするために、呼び出しサイトとメソッド自体を変更する必要があることです。(ただし、単純化する場合は、独自のカスタムタイプを作成して、ラッピングとアンラッピングをカプセル化することもできます。)
所属していません StackOverflow