#c# #ienumerable
#c# #ienumerable
Вопрос:
cGetComponents.cs
public class cGetComponents
{
public IEnumerable<Component> EnumerateComponents(object formobj)
{
return from field in GetType().GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
where typeof(Component).IsAssignableFrom(field.FieldType)
let component = (Component)field.GetValue(formobj)
where component != null
select component;
}
}
Form1.cs
cGetComponentsobj = new cGetComponents();
IEnumerable<Component> c = obj.EnumerateComponents(this);
Почему c пуст, без результатов? Если я помещу функцию EnumerateComponents() внутри Form1, тогда c имеет некоторые элементы.
Комментарии:
1. Разве это не должно быть
from field in formobj.GetType().GetFields()...
?2.
EnumerateComponents<T>(T instance) .. instance.GetType()
3. @JohanP вы правы. Это отсутствовало. Спасибо!