Существует ли аналог "структур" в 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);
        }
    }
}

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


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

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

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