Мне нужно создать связанный список в C # для передачи утилите, написанной на C. Мне нужно передать адрес (HEAD) этого связанного списка в утилиту, написанную на C, которая будет сериализовать эти данные для отправки по сети разъем. Я обнаружил, что реализации связанного списка в C # выполняются через класс, а не через структуры. Как и в этом c-sharpcorner.com руководстве, в котором реализован связанный список с классом.
Я видел это Переполнение стека ответ Ридом Копси , чтобы использовать Класс вместо структур.
В этом ответе
public unsafe struct Livro
{
public string name;
public Livro* next;
}
изменено на
public class Livro
{
public string Name { get; set; }
public Livro Next { get; set; }
}
Это мой вопрос,
1) Если я использую класс вместо структуры и создаю связанный список, он будет создан в памяти так же, как и со структурой. Другими словами, если я создаю связанный список с классом, может ли программа на С (использовать структуру с идентичными полями) читать это из памяти?
2) Если нет, то как это осуществить?
Это код, который я реализовал, но получаю ошибку
Ошибка : невозможно получить адрес, получить размер или объявить указатель на
управляемый тип
unsafe public struct DbNode
{
public ushort handle;
public ushort perm;
public ushort flags;
public ushort size_value;
public byte *value;
public DbNode *next;
};
как исправить эту ошибку?