Referência de objeto J #
Pergunta
Eu queria converter um código c # para j # e, de alguma forma, consegui superar dllimport e marshalas.
O problema é que quando uma função tem uma referência a um objeto - ref não é reconhecida
public static nativo int Mathod (ref Type type, int flags);
Qualquer pessoa tem alguma experiência com j # e sabe enviar referências para um método (ou definir um tipo em um método como referência)
Solução
Tenho certeza de que você não pode fazer isso diretamente.
Tudo é passado por valor em Java real e, provavelmente, em J # também.
Em versões recentes do Java você pode contornar a restrição usando AtomicReference
, mas duvido muito que o J # esteja atualizado o suficiente para suportar isso.
Você pode tentar alterar a assinatura do método para aceitar uma matriz Type[]
de elemento único e, em seguida, modificar esse elemento da matriz.Isso permitiria obter um resultado semelhante ao ref
.A desvantagem é que você precisa alterar o site de chamada e o próprio método para agrupar e desembrulhar a variável no array.(Embora você possa criar seu próprio tipo personalizado para encapsular o acondicionamento e desembrulhamento, se isso simplificar as coisas.)