Объясните, что делает этот код? - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Читаю вот эту тему Выделить все CheckBox!. Отвечающий уже как 3 года тут не показывается, поэтому прошу помощи у вас. Помогите разобратся в коде, а то со справкой как-то не очень у меня это сделать получается...
 foreach (Control gb in this.Controls)
            {
                if (gb.GetType().ToString().IndexOf("GroupBox")>-1)
                {
                    foreach (Control che in gb.Controls)
                    {
                        if (che.GetType().ToString().IndexOf("CheckBox") > -1)
                        {
                            CheckBox che1 = (CheckBox)che;
                            che1.Checked = true;
                        }
                    }
                }
            }
Здесь мы объявляем переменную gb типа Control, которая будет что-то делать в этой форме с Control-ами?
 foreach (Control gb in this.Controls)
Тут ищем первое вхождение со строкой "GroupBox"? Почему условие ">-1"?
 if (gb.GetType().ToString().IndexOf("GroupBox")>-1)
Это выражение совсем не понял...
CheckBox che1 = (CheckBox)che;

Решение задачи: «Объясните, что делает этот код?»

textual
Листинг программы
// Цикл по всем элементам управления формы
foreach (Control gb in this.Controls)
{
    // Получаем имя типа элемента управления - gb.GetType().ToString()
    // Затем проверяем есть ли в имени типа строка GroupBox
    // IndexOf возвращает позицию найденной строки. Если строка не найдена, то метод вернет -1
    if (gb.GetType().ToString().IndexOf("GroupBox")>-1)
    {
        // Цикл по всем элементам управления внутри GroupBox
        foreach (Control che in gb.Controls)
        {
            // Проверяем содержит ли имя типа элемента управления строку CheckBox
            if (che.GetType().ToString().IndexOf("CheckBox") > -1)
            {
                // Т.к. мы уже убедились что в переменной che хранится значение типа CheckBox,
                //    то выполняем приведение значения переменной che к типу CheckBox
                CheckBox che1 = (CheckBox)che;
                che1.Checked = true;
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5