Condividi tramite


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

Guida per programmatori C#

Riferimenti

Parole chiave di C#

Parole chiave per operatori (Riferimenti per C#)

Altre risorse

Riferimenti per C#