Итак, я недавно впервые начал работать с отражением и обнаружил, что GetType () знает исходный тип объекта, даже если он просто хранится как объект.
foreach(object o in (IEnumerable) property.GetValue(element))
{
List(o, verbose, int.MaxValue, subIncludes[attribute.Name], indents + 4);
}
Так что здесьо фактически переходят в общий метод.Я обнаружил, что после передачи, o.GetType ();возвращает реальный тип класса, а не System.Object, который меня удивил.Для аргументов, скажем, тип является продуктом.Так что, если тип уже известен, почему необходимо приводить o к Product как Product p = (Product) o;
вместо того, чтобы просто делать Product p = o
?Почему бы не сделать вывод, что приведение является желаемым результатом, так как тип уже известен?