Что такое boxing (упаковка)?

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Что такое boxing (упаковка)?

Сообщение tyomitch » 22.05.2005 (Вс) 9:13

Упоминается в Аппельмане на стр. 93, упоминается в MSDN только в контексте Managed C++.
На форуме не найдено.
Что же это такое?
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 22.05.2005 (Вс) 11:20

Простейшие машинные типы (Integer etc) не являются объектами, иначе скорость математики была бы ага. Поэтому при операциях с ними они "не объекты". Но как только вызывается что-то объектное (10.ToString etc), производится boxing - создаётся типа объект.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 22.05.2005 (Вс) 16:26

Угу... Тогда это не то, что мне нужно :-(

А нету ли в дотнете безопасных указателей?
Типа, вот мне пришлось наобъявлять:
Код: Выделить всё
   class MutableString{public string data;}
   class MutableInteger{public int data;}
   class MutableBoolean{public bool data;}

Нету ли общей процедуры получения таких классов?
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 22.05.2005 (Вс) 16:39

Ээээээ..... Ты имеешь в виду что? :)
Есть, к примеру, шаблоны, которые generic classes, которые в C++ были template <class T> class Mutable { ... };
В C# они есть, кажется, сразу, а в VB начиная с 2005.

А универсальный указатель - это тип Object :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 22.05.2005 (Вс) 18:44

В C# generics только во 2ом FW. Тёмыч, опиши задачу. Что ты хотел сделать?
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 22.05.2005 (Вс) 21:47

Хотел иметь в Value Type типа-указателей: чтобы можно было менять содержимое поля, и это сразу распространялось на все копии моей структуры.
Изображение

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

Сообщение Dmitriy Solomnikov » 23.05.2005 (Пн) 11:24

как насчет бейсика - я не в курсе, а в с# указатели есть.

Не помню как искать, но попробуй по слову fixed

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 23.05.2005 (Пн) 17:20

Dmitriy, я хочу безопасные указатели.
Чтобы не приходилось писать unsafe перед каждой процедурой.

Что, ни у кого не возникало желания иметь такую полу-структуру, полу-объект? gaidar, посоветуй что-нибудь, ты же MVP :!:
Изображение

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 23.05.2005 (Пн) 18:46

Вообще-то, там в недрах что-то есть, что это поддерживает. Но это надо проверить. Крайне нерекомендуют такую архитектуру. Умнее, говорят, использовать "вложенные" объекты. Т.е. твой объект, если меняется какое-то значение в нем, меняет это значение во всех отслеживаемых им ссылках. Да, сложновато реализовать это факт, но имея готовую оболочку, ее можно использовать.
Посмотрю, где-то было
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 30

    TopList