Существует ли аналог "структур" в C#
Формулировка задачи:
Доброго времени суток уважаемые!
Думаю, многим из вас знакомо такое понятие, как "стуктура" из C/C++ (она же "запись" из Delphi/Pascal и т.д.). Одним из достоинства данного типа данных, была возможность практически не ограниченной манипуляции этими данными без дополнительных "костылей". То есть, эти самые структуры (и массив структур) можно было например, записывать в файл (затем считывать эти данные оттуда), отправлять в поток, загружать и хранить их в памяти и работать с ними оттуда и т.д., что было не несомненно весьма удобно.
Хотелось бы найти подобный аналог для C#, желательно без использования unmanaged-кода. В данный момент, я приспособил под данные задачи формат XML. Всё конечно работает, но не настолько удобно, как например в C++, да и кода получается в разы больше.
Уверен, многие уже сталкивались с чем-то подобным. Подскажите пожалуйста, что ещё (кроме XML), можно использовать в качестве замены структур/записей?
P.S. Так же, неоспоримым удобством, являлась возможность вычислить размер одной "строки" записи/структуры. Например, можно было посчитать, что 1 экземпляр состоящий из int + int + int, занимает 12 байт, соответственно 10 таких экземпляров, будут занимать 120 байт и т.д., чего XML-формат сделать не позволяет...
Решение задачи: «Существует ли аналог "структур" в C#»
textual
Листинг программы
using System; using System.IO; using System.Runtime.Serialization.Formatters.Binary; [Serializable] public struct Student { public string Name { get; set; } } class Program { static void Main(string[] args) { Student st = new Student { Name = "Патрик" }; BinaryFormatter formatter = new BinaryFormatter(); using (MemoryStream stream = new MemoryStream()) { formatter.Serialize(stream, st); byte[] bytes = stream.ToArray(); foreach (var @byte in bytes) Console.Write("0x{0} ", @byte.ToString("X")); Console.ReadKey(true); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д