Книга: C# для профессионалов. Том II
sizeof и typeof
sizeof и typeof
Так как Java не имеет других типов данных значений, кроме примитивных, размер которых всегда известен, то реального применения для оператора sizeof
нет. В C# типы данных значений охватывают примитивные типы, а также структуры и перечисления. Конечно, как и в Java, размер примитивных типов известен. Однако необходимо знать, сколько пространства занимает тип struct
или enum
, для чего служит оператор sizeof
. Синтаксис достаточно простой: sizeof(<Value Type>)
, где <Value Type>
будет struct
или enum
. Необходимо отметить один момент при использовании оператора sizeof
— он может использоваться только в ненадежном контексте. Оператор sizeof
не может быть перезагружен.
Оператор typeof
используется для получения объекта типа экземпляра типа без создания экземпляра типа. В Java каждый тип имеет переменную класса public static
, которая возвращает дескриптор объекта Class
, ассоциированный с этим классом. Оператор typeof
предоставляет функциональность этого типа. Так же как в случае sizeof
, синтаксис будет очень простым: typeof(<Type>)
, где <Type>
является любым типом, определенным пользователем, который вернет объект типа этого типа.