Share via


sizeof (Referência de C#)

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 a Especificação da linguagem C#. A especificação da linguagem é a fonte definitiva para a sintaxe e o uso de C#.

Consulte também

Referência

Palavras-chave C#

Palavras-chave de operador (Referência de C#)

enum (Referência de C#)

Código não seguro e ponteiros (Guia de Programação em C#)

Structs (Guia de Programação em C#)

Constantes (Guia de Programação em C#)

Conceitos

Guia de Programação em C#

Outros recursos

Referência de C#