Я новичок в кодировании в C#, и я « ныряю в глубокие » с этим вопросом ... ?
В следующем коде в foreach
l oop при первом проходе значение item.Name
равно 'BB', а значение item.GetValue(b)
возвращает 'ConsoleApp.A'.
Как я могу получить подробную информацию о item.GetValue(b)
?
Я знаю, что:
item.GetValue(b).GetType().ToString()
возвращает «ConsoleApp42.A» ((A)item.GetValue(b)).AA
возвращает «11»
Как я могу сделать это ((A)item.GetValue(b)).AA
динамически? В этом примере всегда получается объект class A
, но в моем реальном коде это может быть выбор из нескольких классов ...
class Program
{
static void Main(string[] args)
{
A a = new A() { AA=11, BB=22, CC=33 } ;
B b = new B() { BB = a, CC = 2, DD = 1 };
foreach (var item in b.GetType().GetProperties())
{
Console.WriteLine("Name:{0} Value:{1}", item.Name, item.GetValue(b));
}
Console.ReadLine();
}
}
class A {
public int AA { get; set; }
public int BB { get; set; }
public int CC { get; set; }
}
class B
{
public A BB { get; set; }
public int CC { get; set; }
public int DD { get; set; }
}