Запросы преобразования c в c#

#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 . Нет необходимости в небезопасном коде.