Как стать автором
Обновить

Комментарии 5

Это все конечно хорошо, но в реальности некогда задумываться об этом, так как есть еще 100500 вещей о которых надо подумать и вспомнить. Только если целенаправленно не занимаешься низкоуровневой оптимизацией.

Да и в целом - структура по доке рекомендуется 16 байт (на хабре была статья с тестами, где выяснилось 64 байта). То есть структуры - это для чисел. Но при этом, когда например пишешь бизнес приложения, то в 80% случаях в dto будет id и name как строка, в которой может быть и 5 символов и 500.

Так строка не будет лежать в структуре, только указатель. Длина строки при копировании структуры значения не имеет, т.к. строки иммутабельны и CLR просто скопирует указатель - это безопасно.

Но вы ничего не сказали про рекорды и разницу с ними

А разницы особо и нету, рекорды это немного про другое, они могут быть как классами, так и структурами, по сути это такой же класс или структура, только у них по-умолчанию переопределены методы Equals, GetHashCode и ToString, так что они сравниваются по значению, а не по ссылке

Если вместо in параметра использовать ref readonly тоже (вроде как) не будет defensive copy с обычной структурой. Не проверял.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий