2016-08-04 2 views
0

У меня проблема. У меня есть список компаний List<Company>Преобразование в объект .net

Мне нужно написать метод, где я отправляю этот список и другие списки, как List<store> или List<p> ...

Дело в том, что я пытался использовать метод как fillField(List<object> list) но Я получаю сообщение об ошибке

компания не может быть преобразован в объект

Мой вопрос: не все объекты наследуются от object?

Как мне изменить метод?

Спасибо

+4

Кажется, у вас есть проблемы с вашим кодом. Однако мы не можем помочь, если у нас нет [кода или информации, способной воспроизвести проблему] (// stackoverflow.com/help/mcve). В противном случае мы просто слепо угадываем. – FrankerZ

+3

В зависимости от того, что делает ваш 'fillField', можно использовать общий метод, например' fillField (список ) {} ' –

+0

Точка в том, что мне нужно использовать полиморфизм. это подсказка – Ovidiu

ответ

1

Я думаю, что вы хотите узнать о generics. По сути Generics используются для передачи любого типа, который вы хотите, например, когда вы хотите serialize (сохранить) объект как файл.

Пример того, как использовать дженерики:

public void SendListToOtherLists<T> (List<T> listYouWantToSend) 
{ 
    // Your logic... 
} 

В этом примере вы заявили, что это родовое пустота (он получит любого типа в качестве параметра), а в параметрах вы заявили, что вы хотите передать список любого типа.

0

Да все объекты наследуют object, но вы получаете это исключение, потому что List<Company> не может быть преобразован в List<object>. Если вы не используете .Select для преобразования Company в список объектов. Вы должны использовать общие функции с параметрами типа:

public void fillField(List<object> list) 

становится:

public void fillField<T>(List<T> list) 
Смежные вопросы