#c# #c #type-conversion
Вопрос:
Я переписываю сборку C в сборку c#. Я столкнулся с проблемой при обработке указателей, которые ссылаются на определенный адрес памяти. Пример : int a=0; int *b=amp;a;
Я провел некоторое исследование и обнаружил, что мы можем сделать этот метод небезопасным и использовать указатели. помимо того, чтобы сделать метод небезопасным, есть ли какой-либо другой способ, которым мы можем справиться с этим в c#, который логически верен в соответствии с C .
Также, пожалуйста, сообщите мне, есть ли какие-либо сборки C , которые мне нужно иметь в виду, которые могут вызвать проблемы при преобразовании в c#.
Комментарии:
1. Чаще всего лучший способ выполнить такие преобразования-это не просто перевести каждую конструкцию с одного языка на другой, но проанализировать, чего достигает каждая функция, и соответствующим образом воспроизвести функциональность.
2. Я думаю
c
, что тег (который означает, что собственный стандарт c не управляется / .net) здесь неверен. Я думаю, что вы используетеc -cli
3. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.
Ответ №1:
Для вашего конкретного фрагмента вы можете использовать ref
ключевое слово:
int a = 0;
ref int b = ref a;
Это должно вести себя точно так же, как C . Нет необходимости в небезопасном коде.