Как объявить указатель c ++ в C # - PullRequest
1 голос
/ 03 июня 2011
BIRDREADING *bird_data;
bird_data = &frame.reading[i]; 

Как объявить такое в C #?

update1:

Я хочу вызвать C ++ DLL / lib или переписать на C #. На самом деле я пытаюсь решить свой вопрос по этой ссылке. Использовать переменную напрямую (возврат данных в массиве одинаков) или с указателем? Испытайте удачу, чтобы решить вопрос после того, как я преобразовал выше в c #

Ответы [ 3 ]

4 голосов
/ 03 июня 2011

В c # вы можете объявить указатели, которые называются небезопасными.

Пример:

unsafe {
            int iData = 10;
            int* pData = &iData;
            Console.WriteLine("Data is " + iData);
            Console.WriteLine("Address is " + (int)pData );
        }

Проверьте эту статью: Написание небезопасного кода с использованием C #

0 голосов
/ 03 июня 2011

Если BIRDREADING - это класс, это по определению указатель, и вам не нужно делать ничего особенного:

BIRDREADING bird_data;
bird_data = frame.reading[i];

Если это структура, то получение ее указателя зависит от контекста.

0 голосов
/ 03 июня 2011

type* identifier;

Зависит от того, будет ли BIRDREADING ссылочным типом?

Нельзя объявлять указатели на ссылочные типы из Типы указателей (C #)

Тип указателя может быть любым из следующих типов:
sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, decimal или bool.
Любой тип перечисления.
Любой тип указателя.
Любой определяемый пользователем тип структуры, который содержит поля только неуправляемых типов.

Так, для вашего примера, указание этого параметра BIRDREADING соответствует приведенному выше

BIRDREADING *bird_data;

Кроме того, для чего вы хотите использовать указатель?Вы уверены, что вам нужен указатель?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...