Riferimento agli oggetti J #
Domanda
Volevo convertire un codice c # in j # e in qualche modo sono riuscito a superare dllimport e marshalas.
Il problema è che quando una funzione ha un riferimento a un oggetto, ref non viene riconosciuto
pubblico statico nativo int Mathod (ref Type type, int flags);
Chiunque ha esperienza con j # e sa come inviare riferimenti a un metodo (o definire un tipo in un metodo come riferimento)
Soluzione
Sono abbastanza sicuro che non puoi farlo direttamente.
Tutto viene passato per valore in real Java e presumibilmente anche in J #.
Nelle versioni recenti di Java puoi aggirare la restrizione utilizzando AtomicReference
, ma dubito fortemente che J # sia abbastanza aggiornato da supportare questo.
Potresti provare a cambiare la firma del metodo per accettare un array Type[]
a singolo elemento, quindi modificare quell'elemento dell'array.Ciò consentirebbe di ottenere un risultato simile a ref
.Lo svantaggio è che avresti bisogno di cambiare il sito di chiamata e il metodo stesso per avvolgere e scartare la variabile nell'array.(Sebbene tu possa creare il tuo tipo personalizzato per incapsulare l'avvolgimento e lo scartamento se semplifica le cose.)