введение
в C#, загрузка и бокс являются необходимым механизмом для различных поведений скоординированных значений и ссылочных типов. Тем не менее, их цели и варианты использования могут сбить с толку программистов. Это руководство разъясняет, почему эти концепции имеют решающее значение, и приведены примеры практических применений.Важность
boxing and boxingинвафки и бокс позволяет C#для поддержания unified Type System
, чтобы тип значения и тип ссылки можно было последовательно взаимодействовать и обрабатываться. Типы значений (такие как короткие и Int) непосредственно хранят свои данные в переменных. Вместо этого ссылочный тип ссылается на основные объекты в других позициях в памяти., чтобы способствовать бесшовному взаимодействию между этими различными структурами данных, ящик создает упаковочный объект, который содержит данные типа значения, чтобы его можно было рассматривать как контрольный тип. Это позволяет легко хранить и управлять типом рабочего значения в структуре данных, разработанной для эталонного типа.
сценарии приложения для бокса и бокса]
Классический вариант использования для упаковки is оставлен , который принимает только объекты. Эти наборы должны быть упакованы для хранения типа значения, как показано в примере ArrayList:
Short s = 25; Object objShort = s; В эпоху в современном спрос на бокс снизился. Тем не менее, это все еще важно в конкретных сценариях:
]short s = 25;
object objshort = s; // 装箱
]]
double e = 2,718281828459045; int ee = (int) e;
Сравнение того же природы:double e = 2.718281828459045;
int ee = (int)e; // 从double到int的隐式转换(需要装箱)
подробности, которые необходимо обратить внимание на double e = 2.718281828459045;
object o = e; // 装箱
int ee = (int)(double)o; // 拆箱和显式转换
Копировать поведение: Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3