Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
3 / 3 / 1
Регистрация: 14.05.2017
Сообщений: 109

Сократить код

19.04.2020, 14:06. Показов 1315. Ответов 2

Студворк — интернет-сервис помощи студентам
В одной функции есть два участка кода:
1:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
for (int i = 0; i < 10; i++)
{
    try
    {
        IWebElement element = Functions.GetElement(By.CssSelector("selector81sa7"), driver);
        if (element != null)
        {
            string elementText  = elementText.Text;
 
            if (elementText == "SA21saza" || elementText == "sad32ols")
            {
                limit--;
                return true;
            }
        }
        else return false;
    }   
    catch { }
 
    Thread.Sleep(500);
}
2:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
for (int i = 0; i < 10; i++)
{
    try
    {
        IWebElement element  = Functions.GetElement(By.CssSelector("selector1ks9a"), driver);
        if (element  != null)
        {
            string elementText  = elementText.GetAttribute("class");
 
            if (element.Contains("ca2rassa"))
            {
                limit--;
                return true;
            }
        }
        else return false;
    }
    catch { }
 
    Thread.Sleep(500);
Я хочу этот код выделить в другую функции и вызывать её. Но не могу придумать, правило для этих участков кода:
1.
C#
1
2
3
            string elementText  = elementText.Text;
 
            if (elementText == "SA21saza" || elementText == "sad32ols")
2.
C#
1
2
3
            string elementText  = elementText.GetAttribute("class");
 
            if (element.Contains("ca2rassa"))
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.04.2020, 14:06
Ответы с готовыми решениями:

сократить Код
есть небольшой код по вычислению столбца в datagridview, но вот как его укоротить не знаю private void button1_Click(object sender,...

Чтение из файла: сократить код
Собственно, мне внезапно стало жутко интересно, и я задался следующим вопросом: Обычное чтение с консоли выглядит вот так вот: ...

Сократить код создания строки
Подскажите пожалуйста, как можно сократить данный код: string my = &quot;This is my message&quot;; StringBuilder test = new...

2
Злой няш
 Аватар для I2um1
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
19.04.2020, 18:09
Лучший ответ Сообщение было отмечено Александр00707 как решение

Решение

И как понять это Functions.GetElement(By.CssSelector(...) )?
Код вообще не будет компилироваться на строке:
C#
1
string elementText  = elementText.GetAttribute("class");
Чтобы обобщить проверку, можно использовать делегаты:
C#
1
2
3
4
5
6
7
8
9
10
11
private static bool Func1(IWebElement element)
{
    string elementText = element.Text;
    return elementText == "SA21saza" || elementText == "sad32ols";
}
 
private static bool Func2(IWebElement element)
{
    string elementText = element.GetAttribute("class");
    return elementText.Contains("ca2rassa");
}
Использовать так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Predicate<IWebElement> predicate = Func1;
for (int i = 0; i < 10; i++)
{
    try
    {
        IWebElement element = Functions.GetElement(By.CssSelector("selector81sa7"), driver);
        if (element != null)
        {
            if (predicate(element))
            {
                limit--;
                return true;
            }
        }
        else return false;
    }
    catch { }
 
    Thread.Sleep(500);
}
2
3 / 3 / 1
Регистрация: 14.05.2017
Сообщений: 109
20.04.2020, 05:09  [ТС]
string elementText = elementText.GetAttribute("class");

Опечатка, должно быть:
string elementText = element.GetAttribute("class");
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.04.2020, 05:09
Помогаю со студенческими работами здесь

Параллелизм, можно ли сократить код с 24 case
Stopwatch timer = new Stopwatch(); // класс int r = (int)numTask.Value; Task task = new Task; ...

Возможно ли сократить код и не проиграть в производительности?
if (_keyId % 2 == 0) { var t = new Thread(delegate () { LeftClick(_hitEnd); }); ...

Как можно сократить данный код?
Как можно сократить данный код? ( Программа выводит 10 рандомных чисел: 3 в промежутке от 10-30, 3 от 30-60, и последние 4 от 60-100 ...

Сократить код, содержащий много блоков if
Данный код можно сократить? strSQL1 = &quot;&quot;; if (nameTAble == &quot;Место&quot;) { #region if Place ...

Можно как-то сократить код с switch case?
Можно как-то сократить следующий код с switch case? switch (labelFileSaved.Text) { case...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru