Я просмотрел похожие темы, и все они относятся к C++, поэтому я предполагаю, что лучше спросить, чем просто шарить. У меня, например, этот код:Как получить доступ к производному классу из массива базового класса?
foo[] fooArray = new foo[5];
fooArray[2] = new bar();
Говорят, что foo
является пользовательский класс без каких-либо переменных/методов:
public class foo
{
}
и bar
является пользовательский класс, производный от foo
:
public class bar : foo
{
int fooBar = 0;
}
В моем fooArray
мне нужно получить доступ к переменной fooBar
от fooArray[2]
, что является bar
, но поскольку переменная не отображается в базовом классе, она не отображается в массиве foo
s. Есть ли способ получить к нему доступ?
Редактирование: В коде приложения оба foo и bar имеют необходимые конструкторы и другие параметры.
Вы не можете. Тем не менее, вы можете повысить поле до базового класса. –
Думаю, вам нужно пересмотреть свой дизайн. Что делать, если у вас есть десятки производных классов, каждый со своими собственными свойствами ... –