Compartir a través de


sizeof (Referencia de C#)

Se usa para obtener el tamaño en bytes de un tipo no administrado. Los tipos no administrados incluyen los tipos integrados que se muestran en la tabla que figura a continuación, además de estos:

  • Tipos de enumeración

  • Tipos de puntero

  • Structs definidos por el usuario que no contienen ningún campo o propiedad que sea un tipo de referencia

En el ejemplo siguiente, se muestra cómo recuperar el tamaño de un valor de tipo int:

// Constant value 4:
int intSize = sizeof(int); 

Comentarios

A partir de la versión 2.0 de C#, la aplicación de sizeof a los tipos integrados ya no requiere el uso del modo no seguro.

El operador sizeof no se puede sobrecargar. Los valores devueltos por el operador sizeof son del tipo int. En la tabla siguiente, se muestran los valores constantes que se sustituyen por expresiones sizeof que tienen determinados tipos integrados como operandos.

Expresión

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 los demás tipos, incluidos los structs, el operador sizeof se puede usar únicamente en bloques de código no seguro. Si bien se puede usar el método Marshal.SizeOf, el valor devuelto por este método no siempre es idéntico al valor devuelto por sizeof. Marshal.SizeOf devuelve el tamaño una vez calculadas las referencias del tipo, mientras que sizeof devuelve el tamaño asignado por Common Language Runtime, incluido el relleno.

Ejemplo

    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.
    */

Especificación del lenguaje C#

Para obtener más información, vea la Especificación del lenguaje C#. La especificación del lenguaje es la fuente definitiva de la sintaxis y el uso de C#.

Vea también

Referencia

Palabras clave de C#

Palabras clave de operadores (Referencia de C#)

enum (Referencia de C#)

Código no seguro y punteros (Guía de programación de C#)

Estructuras (Guía de programación de C#)

Constantes (Guía de programación de C#)

Conceptos

Guía de programación de C#

Otros recursos

Referencia de C#