sizeof (Riferimenti per C#)
Aggiornamento: novembre 2007
Utilizzato per ottenere la dimensione in byte di un tipo valore. Ad esempio, la dimensione del tipo int può essere recuperata nel seguente modo:
int intSize = sizeof(int);
Note
L'operatore sizeof può essere applicato solo ai tipi di valore, non ai tipi di riferimento.
Nota: |
---|
Dalla versione 2.0 di C# in avanti, l'applicazione di sizeof a tipi primitivi non richiede più l'utilizzo della modalità unsafe. |
L'operatore sizeof potrebbe non essere stato sottoposto a overload. I valori restituiti dall'operatore sizeof sono di tipo int. Nella tabella riportata di seguito vengono illustrati i valori costanti che rappresentano le dimensioni di determinati tipi primitivi.
Espressione |
Risultato |
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 |
Per tutti gli altri tipi, comprese le strutture, l'operatore sizeof può essere utilizzato soltanto in blocchi di codice unsafe. Sebbene sia possibile utilizzare il metodo Marshal.SizeOf, il valore restituito da questo metodo non corrisponde sempre al valore restituito da sizeof. Marshal.SizeOf restituisce la dimensione dopo che il tipo è stato sottoposto a marshalling, mentre sizeof restituisce la dimensionenel modo in cui è stata allocata da Common Language Runtime, compresa l'eventuale spaziatura interna.
Esempio
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.
*/
Specifiche del linguaggio C#
Per ulteriori informazioni, vedere le sezioni riportate di seguito in Specifiche del linguaggio C#:
- 18.5.8 Operatore sizeof
Vedere anche
Concetti
Riferimenti
Parole chiave per operatori (Riferimenti per C#)