Índice:
Definição - O que significa Sizeof Operator?
O operador Sizeof, em C #, é um operador usado para determinar o tamanho (em bytes) de um tipo não gerenciado que não é um tipo de referência.
Ao desenvolver aplicativos que envolvem alocação dinâmica de memória, é muito comum encontrar a memória alocada para um tipo. É muito inseguro assumir o tamanho de um tipo e usar o valor codificado no aplicativo, pois isso pode interromper o aplicativo quando portado para sistemas diferentes. O operador sizeof é usado nesses casos para encontrar o tamanho de um tipo de dados composto como uma estrutura. No entanto, ele só pode ser usado para calcular o tamanho de byte dos tipos de valor e não para os tipos de referência, devido ao sistema de layout de tipo virtualizado da estrutura .NET.
O operador sizeof ajuda na alocação de memória para estruturas de dados que passam do aplicativo gerenciado para código não gerenciado, como Interoperabilidade, serialização personalizada etc. Os operadores de incremento e decremento, que operam em ponteiros, usam o operador sizeof internamente para aumentar ou diminuir o endereço contido em uma variável de ponteiro por um valor igual ao número de bytes ocupados pelo tipo de ponteiro. O operador sizeof ajuda a melhorar a legibilidade do código.
Techopedia explica o tamanho do operador
O operador sizeof é um operador unário que usa um parâmetro singe e é usado com a palavra-chave "sizeof". Ao contrário do C ++, o operador sizeof é uma construção em tempo de compilação, portanto, o parâmetro deve ser um tipo fechado conhecido durante a compilação, não variáveis. O parâmetro também pode ser uma enumeração, um ponteiro ou uma estrutura definida pelo usuário sem nenhuma propriedade de campo ou tipo de referência. Para certos tipos predefinidos, o operador sizeof retorna um valor constante, enquanto seu uso com os tipos restantes resulta em valores baseados na implementação.
Por exemplo, quando o operador sizeof é executado com o número inteiro (int) como parâmetro, ele sempre retorna o número quatro para indicar que uma variável do tipo inteiro ocupa quatro bytes de memória.
Quando o operador sizeof é aplicado a um operando do tipo struct, ele busca o número total de bytes ocupados por uma estrutura, que inclui os bytes de preenchimento usados para seu alinhamento internamente. As diretrizes a seguir ao usar o operador sizeof com struct incluem:- Deve ser chamado dentro de um bloco não seguro
- A variável struct não deve conter um membro do tipo de referência
- A estrutura não deve ser um tipo de valor genérico