![]() |
Задать тип для Vector.<T> во время выполнения
Здравствуйте. Собственно вопрос указан в теме: можно ли в классе вектор задавать тип во время выполнения? Можно конечно использовать класс Object, но тогда утрачивается идея вектора и делает его похожим на обычный массив с нюансами. Есть ли в ActionScript механизм, похожий на обобщения в C#?
|
а изменение в runtime тип вектора не приводит к "утрачивается идея вектора и делает его похожим на обычный массив с нюансами."?
|
Мне не известна такая возможность. Разве что, тип хранимых значений в векторе будет супер классом необходимых вам вариантов. Тогда, получить объект определённого типа можно будет так:
Код AS3:
|
Tails: такое решение мало чем отличается от Object, но спасибо за ответ, я тоже уже тоже не нашел подобных возможностей, перекопав документацию.
Sync: не утрачивается. Можно представить ситуацию, когда у нас есть овощи и фрукты, которые нужно разместить в разных корзинах, но сама система заранее не знает ничего об овощах и фруктах и узнаёт только во время выполнения, когда создаются разные корзины для овощей и для фруктов. Система получается более гибкой, так как можно легко добавить другие типы, например ягоды и система сама будет создавать корзину для ягод. |
Цитата:
ну используйте наследование или интерфесы |
чушь какая, вектор для того и создан чтобы было строгое соответствие, если тебе надо винегрет в одном месте используй Array, который ведет себя также как и вектор
|
Лучше использовать интерфейсы как посоветовал Sync, если нужно ложить в корзины не всё подряд, а объекты определённых типов.
|
Интерфейсами уже и начал делать, спасибо всем за информацию! chamele0n: необходим не винегрет в одном массиве данных. В каждом векторе хранятся данные лишь одного типа.
|
Код AS3:
|
имхо, ТС сам не понимает что и зачем, но твердо убежден что вектор ему необходим.
|
| Часовой пояс GMT +4, время: 18:09. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.