Ссылка на объект J#
Я хотел преобразовать код aC# в j# и каким-то образом смог преодолеть dllimport и marshalas.
Проблема в том, что когда функция имеет ссылку на объект - ссылка не распознается
public static native int Mathod(ref Type type, int flags);
Любой имеет опыт работы с j# и знает, как отправлять ссылки на метод (или определять тип в методе как ссылку)
1 ответ
Я уверен, что вы не можете сделать это напрямую.
Все передается по значению в реальной Java, и, вероятно, в J# тоже.
В последних версиях Java вы можете обойти ограничение, используяAtomicReference
, но я очень сомневаюсь, что J# достаточно актуален, чтобы поддержать это.
Вы можете попробовать изменить сигнатуру метода, чтобы принять одноэлементный Type[]
массив, а затем мутировать этот элемент массива. Это позволит вам достичь аналогичного результата ref
, Недостатком является то, что вам нужно изменить сайт вызова и сам метод, чтобы обернуть и развернуть переменную в массиве. (Хотя вы можете создать свой собственный пользовательский тип для инкапсуляции обертки и распаковки, если это упрощает вещи.)