2011-12-02 159 views
1

我想將c#代碼轉換爲j#,並設法通過dllimport和marshalas。J#對象參考

問題是,當一個函數有一個對象的引用 - REF不被識別

公共靜態本地INT馬託(REF類型類型,整數標誌);

任何人有J#的經驗,知道如何(在方法或定義類型作爲參考)發送引用的方法

回答

1

我敢肯定,你不能直接這樣做。

所有東西都按值傳遞real Java,也可能是J#。

在最近版本的Java you can workaround the restriction by using AtomicReference的,但我很懷疑J#是跟上時代的足夠支持這一點。

您可以嘗試更改方法簽名以接受單元素Type[]數組,然後改變該數組元素。這將允許您獲得與ref類似的結果。缺點是你需要改變調用站點和方法本身來包裝和打開數組中的變量。 (雖然你可以創建自己的自定義類型封裝包裝和不包裝,如果它簡化了的東西。)

+0

我敢肯定,J#沒有發生變異。但是我有一個頭腦風暴:代碼的目的不需要與我的程序進行持續的交互。它在節目開始時運行一次,最後一次運行。我可以簡單地通過我的j#應用程序運行該程序,並將它傳遞給我想要的參數。 (順便說一句 - 這是一個功能,可以改變屏幕的分辨率以與我的應用程序兼容) – user779444