Один и тот же код на С++ и С#, Шаблоны, отображение содержимого шаблонного класса - C#
Формулировка задачи:
написан на С++ шаблонный класс "List" созданный для создания списковой структуры внутри двоичного файла ([элемент][номер байта с которого следует читать следующий элемент(указатель)])
предусматривается работа с любыми данными для которых перегружены операции < > = cout
Для класса "List" определены операции ввода нового, удаления по номеру, сортировка, балансировка(Так как при удалении физически элемент не удаляется из двоичного файла, а переписываются указатели, спустя какое то время накапливаются элементы на которые нет ссылок но занимают память, функция балансировки переписывает файл уже без удаленных элементов)
следует переделать эту работу на С#, отображая на форме все данные о классе.
собственно мои вопросы:
1) отличие шаблонов в C++ и C#
2) если в С++ можно было перегрузить cout для корректного отображение элементов любого типа
то что следует сделать в С# c формами? Была идея отображать информацию в ListView, программно инициализируя новые колонки, но для этого надо знать количество полей класса и их имена. Есть ли в С# средства для подсчета количества полей класса?
Приветствуются любые советы ^^
Решение задачи: «Один и тот же код на С++ и С#, Шаблоны, отображение содержимого шаблонного класса»
textual
Листинг программы
public static T ReadStruct<T>(this BinaryReader reader) where T : struct { byte[] rawData = reader.ReadBytes(Marshal.SizeOf(typeof(T))); GCHandle handle = GCHandle.Alloc(rawData, GCHandleType.Pinned); var returnObject = (T)Marshal.PtrToStructure(handle.AddrOfPinnedObject(), typeof(T)); handle.Free(); return returnObject; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д