Ссылка на объект J#

Я хотел преобразовать код aC# в j# и каким-то образом смог преодолеть dllimport и marshalas.

Проблема в том, что когда функция имеет ссылку на объект - ссылка не распознается

public static native int Mathod(ref Type type, int flags);

Любой имеет опыт работы с j# и знает, как отправлять ссылки на метод (или определять тип в методе как ссылку)

1 ответ

Решение

Я уверен, что вы не можете сделать это напрямую.

Все передается по значению в реальной Java, и, вероятно, в J# тоже.

В последних версиях Java вы можете обойти ограничение, используяAtomicReference, но я очень сомневаюсь, что J# достаточно актуален, чтобы поддержать это.

Вы можете попробовать изменить сигнатуру метода, чтобы принять одноэлементный Type[] массив, а затем мутировать этот элемент массива. Это позволит вам достичь аналогичного результата ref, Недостатком является то, что вам нужно изменить сайт вызова и сам метод, чтобы обернуть и развернуть переменную в массиве. (Хотя вы можете создать свой собственный пользовательский тип для инкапсуляции обертки и распаковки, если это упрощает вещи.)

Другие вопросы по тегам