В Java все находится в форме класса.
Если вы хотите использовать любой объект, тогда у вас есть две фазы:
Пример:
Object a;
a=new Object();
То же самое для концепции массива
Item i[]=new Item[5];
i[0]=new Item();
Если вы не дают секцию инициализации, тогда возникает NullpointerException
.
Как компилятор говорит Вам, необходимо изменить тип возврата на IEnumerable. Именно так синтаксис возврата урожая работает.
Просто для уточнения
private static IEnumerator<TextBox> FindTextBoxes(Control rootControl)
Изменения в
private static IEnumerable<TextBox> FindTextBoxes(Control rootControl)
, Который должен быть всеми :-)
При возврате IEnumerator это будет другой объект перечислителя каждый раз вызов, что метод (действующий, как будто Вы сбрасываете перечислитель на каждом повторении). При возврате IEnumerable затем, foreach может перечислить на основе метода с оператором урожая.
// Generic function that gets all child controls of a certain type,
// returned in a List collection
private static List<T> GetChildTextBoxes<T>(Control ctrl) where T : Control{
List<T> tbs = new List<T>();
foreach (Control c in ctrl.Controls) {
// If c is of type T, add it to the collection
if (c is T) {
tbs.Add((T)c);
}
}
return tbs;
}
private static void SetChildTextBoxesHeight(Control ctrl, int height) {
foreach (TextBox t in GetChildTextBoxes<TextBox>(ctrl)) {
t.Height = height;
}
}