Compartilhar via


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

C# Keywords

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

Enum (referência de C#)

Unsafe Code and Pointers (C# Programming Guide)

Structs (C# Programming Guide)

Constantes (guia de programação de C#)

Conceitos

C# Programming Guide

Outros recursos

C# Reference