sizeof (C# referência)
Usado para obter o tamanho em bytes para um tipo não gerenciado. Os tipos de não gerenciados incluem tipos internos que estão listados na tabela a seguir e também o seguinte:
Tipos de enum
Tipos ponteiro
Estruturas definidas pelo usuário que não contêm quaisquer campos ou propriedades que são tipos de referência
O exemplo a seguir mostra como recuperar o tamanho de um int:
// Constant value 4:
int intSize = sizeof(int);
Comentários
Começando com a versão 2.0 do C#, aplicando sizeof para tipos internos, não requer que inseguros o modo de ser usado.
O sizeof operador não pode ser sobrecarregado. Os valores retornados pelo sizeof operador são do tipo int. A tabela a seguir mostra os valores de constante são substituídos por sizeof expressões que tenham determinados tipos internos como operandos.
Expression |
Valor constante |
---|---|
sizeof(sbyte) |
1 |
sizeof(byte) |
1 |
sizeof(short) |
2 |
sizeof(ushort) |
2 |
sizeof(int) |
4 |
sizeof(uint) |
4 |
sizeof(long) |
8 |
sizeof(ulong) |
8 |
sizeof(char) |
2 (Unicode) |
sizeof(float) |
4 |
sizeof(double) |
8 |
sizeof(decimal) |
16 |
sizeof(bool) |
1 |
Para outros tipos, incluindo structs, o sizeof pode ser usado somente no código inseguro blocos. Embora você possa usar o Marshal.SizeOf método, o valor retornado por esse método é que nem sempre o mesmo que o valor retornado por sizeof. Marshal.SizeOfRetorna o tamanho após o tipo foi empacotado, enquanto sizeof retorna o tamanho do foi alocado pelo common language runtime, incluindo qualquer preenchimento.
Exemplo
class MainClass
{
// unsafe not required for primitive types
static void Main()
{
Console.WriteLine("The size of short is {0}.", sizeof(short));
Console.WriteLine("The size of int is {0}.", sizeof(int));
Console.WriteLine("The size of long is {0}.", sizeof(long));
}
}
/*
Output:
The size of short is 2.
The size of int is 4.
The size of long is 8.
*/
Especificação da linguagem C#
Para obter mais informações, consulte C# Language Specification A especificação de linguagem é a fonte definitiva para a sintaxe e o uso de C#.
Consulte também
Referência
Palavras-chave de operador (referência de C#)
Unsafe Code and Pointers (C# Programming Guide)
Structs (C# Programming Guide)
Constantes (guia de programação de C#)