На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Оператор Sizeof в C#

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

Размер

Не самая частая задача, но все же встречающаяся - определение размера типа значения в байтах. Например, вам может понадобиться знать размер при прохождении значения неуправляемого кода или при выделении памяти или пространства стека. При возникновении такой ситуации вы можете определить размер, используя ключевое слово sizeof. Тип может быть стандартным типом значения (принадлежащий к числовым типам данных) или одной из ваших собственных структур. Однако, он не может быть ссылочным типом или структурой с полями или свойствами , которые содержат ссылочные типы.

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

Console.WriteLine(sizeof(double));
Получение размера пользовательских типов

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

struct V3D
{
    int X { get; set; }
    int Y { get; set; }
    int Z { get; set; }
 
    double Length
    {
        get
        {
            return Math.Sqrt(X * X + Y * Y + Z * Z);
        }
    }
}
Чтобы получить размер V3D в примере, мы можем использовать следующий код. Для выполнения этого кода, убедитесь, что вы компилируете его с параметром «разрешить небезопасный код».

unsafe { Console.WriteLine(sizeof(Vector3D)); }
В Framework версии 1.1, все вызовы оператор sizeof должен находиться в блоке небезопасного кода, а уже начиная с версии 2.0 языка C# оператора sizeof можно применять к встроенным типам (int, double) и без небезопасного режима.




тегизаметки, си шарп, операторы





Урок 20. Операторы сравнения JavaScript
2 where mysql


© upread.ru 2013-2018
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос или оставить комментарий. Оставьте сообщение, и я отвечу на него в ближайшее время. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru