Зачем нужен struct?

189
10 мая 2019, 04:10

Объясните пожалуйста, зачем нужна конструкция struct(пример желателен на c#), если можно использовать простые классы?

Answer 1

Если смотреть с точки зрения абстрактного программирования, то смысла в struct действительно нет, класс является более общей концепцией, которая включает в себя struct. Но практически класс подходит не для всех задач, конкретно, класс является слишком высокоуровневой структурой.

Например, мы можем скопировать структуру в другое место просто как блок памяти. Или вывести ее в файл как неформатированный блок памяти, и так же считать ее обратно из файла. При этом мы можем задавать выравнивание членов структуры. Например, если после байта идет целое, то компилятор добавит три неиспользуемых байта, чтобы выровнять целое на границу двойного слова. Если структура используется для прямого отображения данных в файле, это может оказаться неприемлемым, но в случае структуры мы можем этим управлять.

Для структур есть термин POD (Plain Old Data), то есть это данные, которые позволяет манипулировать с собой на низком уровне, и не нуждаются в конструкторе/деструкторе. Ничего подобного с классами, разумеется, делать нельзя.

READ ALSO
,cdb работа с файлами

,cdb работа с файлами

Может кто нибудь привести примеры работы сcdb файлами? В гугле нашёл только то, что этим форматом не пользуются и вот делайте на чём нибудь...

181
Книги и учебные ресурсы по Unity3D

Книги и учебные ресурсы по Unity3D

Собираем подборку литературы и документации по Unity3D

182
Как задать DataContext для ListBoxItem внутри UserControl?

Как задать DataContext для ListBoxItem внутри UserControl?

Создал UserControl с ListBox внутри:

175
Не отображаются номера страниц в GridView (aspx)

Не отображаются номера страниц в GridView (aspx)

На странице выводится GridView

191