Существует ли аналог "структур" в C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток уважаемые! Думаю, многим из вас знакомо такое понятие, как "стуктура" из C/C++ (она же "запись" из Delphi/Pascal и т.д.). Одним из достоинства данного типа данных, была возможность практически не ограниченной манипуляции этими данными без дополнительных "костылей". То есть, эти самые структуры (и массив структур) можно было например, записывать в файл (затем считывать эти данные оттуда), отправлять в поток, загружать и хранить их в памяти и работать с ними оттуда и т.д., что было не несомненно весьма удобно. Хотелось бы найти подобный аналог для C#, желательно без использования unmanaged-кода. В данный момент, я приспособил под данные задачи формат XML. Всё конечно работает, но не настолько удобно, как например в C++, да и кода получается в разы больше. Уверен, многие уже сталкивались с чем-то подобным. Подскажите пожалуйста, что ещё (кроме XML), можно использовать в качестве замены структур/записей? P.S. Так же, неоспоримым удобством, являлась возможность вычислить размер одной "строки" записи/структуры. Например, можно было посчитать, что 1 экземпляр состоящий из int + int + int, занимает 12 байт, соответственно 10 таких экземпляров, будут занимать 120 байт и т.д., чего XML-формат сделать не позволяет...

Решение задачи: «Существует ли аналог "структур" в C#»

textual
Листинг программы
  1. using System;
  2. using System.IO;
  3. using System.Runtime.Serialization.Formatters.Binary;
  4.  
  5. [Serializable]
  6. public struct Student
  7. {
  8.     public string Name { get; set; }
  9. }
  10.  
  11. class Program
  12. {
  13.     static void Main(string[] args)
  14.     {
  15.         Student st = new Student
  16.         {
  17.             Name = "Патрик"
  18.         };
  19.         BinaryFormatter formatter = new BinaryFormatter();
  20.         using (MemoryStream stream = new MemoryStream())
  21.         {
  22.             formatter.Serialize(stream, st);
  23.             byte[] bytes = stream.ToArray();
  24.             foreach (var @byte in bytes)
  25.                 Console.Write("0x{0} ", @byte.ToString("X"));
  26.             Console.ReadKey(true);
  27.         }
  28.     }
  29. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.455 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут