Как создать массив Свойств уже созданных экземпляров объектов C#
Есть некий класс с полями и свойствами, мне нужно создать массив/список Свойств конкретных уже созданных экземпляров, чтобы динамически отслеживать их значение. Но у меня получается только создать копии этих свойств, которые естественно не обновляются.
Начнем сначала. Задача которую я пытаюсь решить: Вывод на экран свойств объектов разных классов, с помощью отдельного класса Indicator. Как я думал реализовать: Так как массив - это список объектов, а не сами объекты, я посчитал, что можно составить список нужных мне свойств, один раз их обозначить, а затем обновляя данные внутри класса Indicator, обновлять их на экране. Но что-то пошло не так :)
Подскажите как можно в консольном приложении выводить значения свойств объектов не редактируя каждый класс, а через тот класс который создан для вывода на экран.
class Person
{
public string Name { get; set; }
}
class Company
{
public TypeProduct TypeProduct { get; set; }
}
class Indicator
{
private readonly string name;
private object[] dynamicVars;
public Indicator(object[] _sourse)
{
this.dynamicVars = _sourse;
}
public string[] DynamicStrings
{
get
{
string[] output = new string[dynamicVars.Length];
for (int i = 0; i < dynamicVars.Length; i++)
{
output[i] = dynamicVars[i].ToString();
}
return output;
}
}
}
static void Main(string[] args)
{
while (true)
{
RefreshOutput(indicators);
}
}
static void RefreshOutput(Indicator[] _indicators)
{
int y = 0;
int x = 0;
string[] OutputStrs;
for (int i = 0; i < _indicators.Length; i++)
{
y = (i / GridWidth) * CellHeight + 5;
x = (i % GridWidth) * CellWidth + 1;
OutputStrs = _indicators[i].DynamicStrings;
for (int j = 0; j < OutputStrs.Length; j++)
{
Console.CursorTop = y + j;
Console.CursorLeft = x;
Console.Write(_indicators[i].StaticStrings[j] + OutputStrs[j]);
}
}
}