У меня есть функция, которая в настоящее время прототипа, как:Полиморфный типа возвращаемых в C#
List<object> get_object_list(byte object_type, object_void_delegate get_one_specific_type_object)
{}
В логике получения списка элементов является одинаковым для всех типов у меня есть, но логика для получения одного элемента , отличается от одного типа к другому, я надеялся получить одну функцию для получения списка всех типов (get_object_list()).
, например, для типа Car
я бы назвал:
List<Car> cars_list = (List<Car>) get_object_list (CAR , get_one_car);
Проблема теперь у меня гр ошибку компиляции для недопустимого преобразования: не может конвертировать List<object>
в List<Car>
Есть в любом случае, чтобы исправить Это?
Update: Некоторые пояснения. get_object_list() находится в клиентском компоненте и получает его данные от сетевого ресурса (a NetStream
). object_type
отправляется на сервер, чтобы сообщить ему желаемый тип списка. Сервер ответит Uint32 number_of_items
описанием количества доступных элементов. , то get_one_specific_type_object()
будет называться number_of_items
раз.
Общий метод звучит как хорошая идея. см. мое обновление для более подробной информации. Тем не менее, я не знаком с универсальными методами. не могли бы вы объяснить на 'Func singleObjectGetter'? это делегат? –
@EdgarJamesluffternstat: Да, 'Func' - общий делегат, который уже существует в пространстве имен 'System'. –
будет ли он принимать участие в фактическом звонке? –