Хорошо, я звоню в dll взаимодействия, к которому у меня нет доступа.Вот псевдокод:
dynamic myVariable = null;
firstInteropMethod(ref myVariable);
secondInteropMethod(myVariable); //Not by ref
Сигнатуры методов для двух методов:
firstInteropMethod(ref object someObject);
secondInteropMethod(object someObject);
Ожидаемое значение - двойной массив определения
double[,]
Теперь самое интересное.Мой исходный код дает неправильные результаты, но без ошибок.Однако этот код:
firstInteropMethod(ref myVariable);
secondInteropMethod((double[,]) myVariable);
Дает ожидаемые результаты.
Используя часы и тип операторов, я определил, что ничего не меняется между двумя вызовами, так что же дает?Почему будет разница, и что это будет за разница?