Я прочитал несколько подобных вопросов об этом, но никто, кажется, не решает проблему, с которой я столкнулся. Типичным ответом является использование в качестве производного класса, но я не могу, так как не знаю тип производного класса.
Вот мой пример:
class WireLessDevice { // base class
void websocket.parsemessage(); // inserts data into the wireless device object
}
class WiFi : WireLessDevice { // derived class
GPSLoc Loc;
}
Беспроводное устройство также может быть создано для создания устройств Bluetooth, Wi-Max, Cellular и т.д., и поэтому я не знаю, какой тип беспроводного устройства будет принимать данные.
Когда GPS-пакет принимается на websocket в базовом классе, мне нужно обновить местоположение производного устройства.
Я думал, возможно, отправив сообщение через очередь или создав обработчик событий и отправив местоположение в аргументы события, но они кажутся немного неуклюжими, когда данные остаются внутри класса.
Есть ли что-то встроенное в язык, который позволит мне вызвать мое производное устройство из базового класса, не зная тип?