sizeof (Référence C#)
Mise à jour : novembre 2007
Utilisé pour obtenir la taille en octets d'un type valeur. Par exemple, la taille du type int peut être récupérée comme suit :
int intSize = sizeof(int);
Notes
L'opérateur sizeof peut être appliqué uniquement à des types valeur, et non à des types référence.
Remarque : |
---|
Depuis la version 2.0 de C#, appliquer sizeof à des types primitifs n'oblige plus à utiliser le mode unsafe. |
L'opérateur sizeof peut ne pas être surchargé. Les valeurs retournées par l'opérateur sizeof sont de type int. Le tableau suivant montre les valeurs de constante qui représentent la taille de certains types primitifs.
Expression |
Résultat |
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(bool) |
1 |
Pour tous les autres types, y compris 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 la valeur retournée par sizeof. Marshal.SizeOf retourne la taille après que le type a été marshalé, alors que sizeof retourne la taille lorsqu'elle a été allouée par le Common Language Runtime, y compris un éventuel 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, consultez les sections suivantes dans Spécifications du langage C#.
- 18.5.8 L'opérateur sizeof
Voir aussi
Concepts
Référence
Mots clés des opérateurs (Référence C#)