sizeof (C# Reference)
Usado para obter o tamanho em bytes para um tipo não gerenciado.Tipos não gerenciados incluem os 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
Iniciando com a versão 2.0 do C#, aplicando sizeof para tipos internos não exige que não seguros o modo de ser usado.
O sizeof operador não pode ser sobrecarregado.Os valores retornados pela sizeof operador são do tipo int.A tabela a seguir mostra os valores constantes que 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 todos os outros tipos, incluindo structs, o sizeof pode ser usado somente em blocos de código não seguro.Embora você possa usar o Marshal.SizeOf método, o valor retornado por esse método 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 conforme 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 Especificação de linguagem do C# A especificação da linguagem é a fonte definitiva para a sintaxe e o uso da linguagem C#.
Consulte também
Referência
Palavras-chave de operador (referência de C#)
Não seguro código e ponteiros (guia de programação do C#)
Structs (guia de programação do C#)
Constantes (guia de programação do C#)