Share via


sizeof (référence C#)

Utilisé pour obtenir la taille en octets d'un type non managé. Les types non managés incluent les types intégrés répertoriés dans le tableau suivant, et également les éléments suivants :

  • Types d'enum

  • Types de pointeur

  • Les structs définis par l'utilisateur qui ne contiennent pas tous les champs ou propriétés qui sont des types référence

L'exemple suivant indique comment extraire la taille d'un int :

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

Notes

Depuis la version 2.0 de C#, appliquer sizeof à des types intégrés n'oblige plus à utiliser le mode unsafe.

L'opérateur sizeof ne peut pas être surchargé. Les valeurs retournées par l'opérateur sizeof sont de type int. Le tableau suivant montre les valeurs de constantes substituées aux expressions sizeof qui ont certains types intégrés en tant qu'opérandes.

Expression

Valeur de 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

Pour tous les autres types, y compris les structs, l'opérateur sizeof ne peut être utilisé que dans des blocs de code unsafe. Bien que vous puissiez utiliser la méthode Marshal.SizeOf, la valeur retournée par cette méthode n'est pas toujours la même que celle retournée par sizeof. Marshal.SizeOf retourne la taille après avoir marshalé le type, alors que sizeof retourne la taille comme elle a été allouée par le common language runtime, y compris tout remplissage.

Exemple

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

Spécification du langage C#

Pour plus d'informations, voir la Spécification du langage C#. La spécification du langage est la source de référence pour la syntaxe C# et son utilisation.

Voir aussi

Référence

Mots clés C#

Mots clés des opérateurs (référence C#)

enum (référence C#)

Pointeurs et code unsafe (Guide de programmation C#)

Structures (Guide de programmation C#)

Constantes (Guide de programmation C#)

Concepts

Guide de programmation C#

Autres ressources

Référence C#