Оглавление:
Определение - что означает Sizeof Operator?
Оператор sizeof в C # - это оператор, используемый для определения размера (в байтах) неуправляемого типа, который не является ссылочным типом.
При разработке приложений, в которых используется динамическое распределение памяти, очень часто можно найти память, выделенную для типа. Очень небезопасно принимать размер типа и использовать жестко закодированное значение в приложении, так как это может нарушить работу приложения при переносе на другие системы. Оператор sizeof используется в таких случаях для определения размера составного типа данных, такого как структура. Однако он может использоваться только для вычисления байтового размера типов значений, а не для ссылочных типов из-за системы компоновки виртуализированных типов в .NET Framework.
Оператор sizeof помогает в распределении памяти для структур данных, которые передаются из управляемого приложения в неуправляемый код, такой как Interop, настраиваемая сериализация и т. Д. Операторы увеличения и уменьшения, которые работают с указателями, используют оператор sizeof для увеличения или уменьшения адреса, содержащегося в нем. в переменной указателя значением, равным количеству байтов, занятых типом указателя. Оператор sizeof помогает улучшить читаемость кода.
Техопедия объясняет размер оператора
Оператор sizeof - это унарный оператор, который принимает единственный параметр и используется с ключевым словом «sizeof». В отличие от C ++, оператор sizeof является конструкцией времени компиляции, поэтому параметр должен быть закрытым типом, известным во время компиляции, а не переменными. Параметр также может быть перечислением, указателем или определяемой пользователем структурой без каких-либо свойств поля или ссылочного типа. Для определенных предопределенных типов оператор sizeof возвращает постоянное значение, а его использование с остальными типами приводит к значениям, основанным на реализации.
Например, когда оператор sizeof выполняется с целым числом (int) в качестве параметра, он всегда возвращает число четыре, чтобы указать, что переменная целочисленного типа занимает четыре байта памяти.
Когда оператор sizeof применяется к операнду типа структуры, он выбирает общее количество байтов, занятых структурой, которое включает байты заполнения, используемые для внутреннего выравнивания. При использовании оператора sizeof со структурой следует соблюдать следующие рекомендации:- Должен вызываться в небезопасном блоке
- Переменная struct не должна содержать член ссылочного типа
- Структура не должна быть типом общего значения
