sizeof (Справочник по C#)

Обновлен: Ноябрь 2007

Позволяет получить размер в байтах для типа значения. Например, чтобы узнать размер типа int, можно выполнить следующую инструкцию:

int intSize = sizeof(int);

Заметки

Оператор sizeof можно применять только к типам значений, но не к ссылочным типам.

eahchzkf.alert_note(ru-ru,VS.90).gifПримечание.

Начиная с версии C# 2.0 при применении оператора sizeof к простым типам больше не требуется использовать небезопасный режим.

Оператор sizeof не может быть перегружен. Возвращаемые оператором sizeof значения имеют тип int. В следующей таблице показаны константы, соответствующие размерам некоторых простых типов.

Выражение

Результат

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

Для всех остальных типов, в том числе для структур, оператор sizeof можно использовать только в блоках небезопасного кода. Можно также использовать метод Marshal.SizeOf, но возвращаемое им значение не всегда совпадает со значением, которое возвращает оператор sizeof. Метод Marshal.SizeOf возвращает размер после маршалинга типа, тогда как оператор sizeof возвращает размер сразу после выделения памяти средой CLR, включая также незаполненную область памяти.

Пример

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

Спецификация языка C#

Дополнительные сведения см. в следующих разделах документа Спецификация языка C#:

  • 18.5.8 Оператор sizeof

См. также

Основные понятия

Руководство по программированию в C#

Ссылки

Ключевые слова C#

Ключевые слова операторов (справочник по C#)

Другие ресурсы

Справочник по C#