Создание своих функций в коде

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Благодарностей
23
Баллы
18
Добрый. Были похожие вопросы, но чет до конца не понимаю.
У меня есть куча кубиков и есть повторяющий код, мне нужно создать функцию в "директивах using и общий код" и вызывать из кубиков C#. Подскажите как правильно сделать чтобы все заработало. Вот пример функции которую нужно вызывать (сорян за синтаксис, создание функций из питона)
C#:
def load_page(url,count,proxy):
    count_loop_2=0;
    while (count_loop_2<count){
        //чистим куки
        instance.ClearCookie();
        instance.ClearCache();
        instance.ClearProxy();
        //ставим проксю
        instance.SetProxy(proxy);
        System.Threading.Thread.Sleep(2000);   
        //открываем сайт
        instance.ActiveTab.Navigate(url,"https://www.google.ru");
    }
Спасибо)
 

Viking01

Client
Регистрация
19.08.2017
Сообщения
228
Благодарностей
151
Баллы
43
83222


а вызов в кубике будет CommonCode.DoTask(url, count, proxy);
 
  • Спасибо
Реакции: arbplv

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Благодарностей
23
Баллы
18

SHILY

Client
Регистрация
05.06.2016
Сообщения
258
Благодарностей
304
Баллы
63
  • Спасибо
Реакции: arbplv

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Благодарностей
23
Баллы
18
Подскажите, а можно использовать дефолтные параметры переменных
C#:
public class calculate{
    //Первый метод
    public int sum(int a, int b=5){
        int c = a + b;
        return c;
    }
}
C#:
CommonCode calculate = new CommonCode(project, instance);
return calculate.sum(4);
Чет не заводится вот так
 

Viking01

Client
Регистрация
19.08.2017
Сообщения
228
Благодарностей
151
Баллы
43

SHILY

Client
Регистрация
05.06.2016
Сообщения
258
Благодарностей
304
Баллы
63
Подскажите, а можно использовать дефолтные параметры переменных
C#:
public class calculate{
    //Первый метод
    public int sum(int a, int b=5){
        int c = a + b;
        return c;
    }
}
C#:
CommonCode calculate = new CommonCode(project, instance);
return calculate.sum(4);
Чет не заводится вот так
Достаточно просто сделать так:
Добавить в общий код:
namespace ZennoLab.OwnCode
{
    public class CommonCode
    {
        public static object SyncObject = new object();
    }

    public class Calculate
    {
        public static int Sum(int a, int b = 5)
        {
            int c = a + b;
            return c;
        }
    }
}
C#:
namespace ZennoLab.OwnCode
{
    public class CommonCode
    {
        public static object SyncObject = new object();
    }
    
    public class Calculate
    {
        public static int Sum(int a, int b = 5) => a + b;
    }
}

И всё будет работать:
Использование в кубике:
return Calculate.Sum(5);
83255
83256
 
Последнее редактирование:
  • Спасибо
Реакции: arbplv

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Благодарностей
23
Баллы
18
Достаточно просто сделать так:
Добавить в общий код:
namespace ZennoLab.OwnCode
{
    public class CommonCode
    {
        public static object SyncObject = new object();
    }

    public class Calculate
    {
        public static int Sum(int a, int b = 5)
        {
            int c = a + b;
            return c;
        }
    }
}
C#:
namespace ZennoLab.OwnCode
{
    public class CommonCode
    {
        public static object SyncObject = new object();
    }
   
    public class Calculate
    {
        public static int Sum(int a, int b = 5) => a + b;
    }
}

И всё будет работать:
Использование в кубике:
return Calculate.Sum(5);
Подскажи, а как заставить вот такой код возвращать что нидь? У меня постоянные разлогины в разных частях кода, задолбался я копировать код, а после смены верстки везде менять, сделал вот так, да, логинится, но вопрос, как поймать "not_login"
1632490648813.png
спасибо
 

SHILY

Client
Регистрация
05.06.2016
Сообщения
258
Благодарностей
304
Баллы
63
Подскажи, а как заставить вот такой код возвращать что нидь? У меня постоянные разлогины в разных частях кода, задолбался я копировать код, а после смены верстки везде менять, сделал вот так, да, логинится, но вопрос, как поймать "not_login"
Посмотреть вложение 83257
спасибо
А точно "not_login", а не "not_load"?
Если учесть точки выхода из метода, то он какой-то из этих двух элементов не находит, скорее всего:-)

83258
 
Последнее редактирование:
  • Спасибо
Реакции: arbplv

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Благодарностей
23
Баллы
18
А точно "not_login", а не "not_load"?
Если учесть точки выхода из метода, то он какой-то из этих двух элементов не находит, скорее всего:-)

Посмотреть вложение 83258
Не суть, вопрос чтобы вернуть. В первом случае страничка может не прогрузиться, прокся хреновые например, а во втором случем правильнее not_login, вопрос бы хоть что нидь вернуть)))
 

SHILY

Client
Регистрация
05.06.2016
Сообщения
258
Благодарностей
304
Баллы
63
Не суть, вопрос чтобы вернуть. В первом случае страничка может не прогрузиться, прокся хреновые например, а во втором случем правильнее not_login, вопрос бы хоть что нидь вернуть)))
Так он и так возвращает строку :al:
83261
 
  • Спасибо
Реакции: arbplv

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Благодарностей
23
Баллы
18

SHILY

Client
Регистрация
05.06.2016
Сообщения
258
Благодарностей
304
Баллы
63
  • Спасибо
Реакции: arbplv

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Благодарностей
23
Баллы
18
Это просто тебе не хочется его сохранять:D
Посмотреть вложение 83262
А можно ещё так:
Посмотреть вложение 83263
Да, так у меня тоже работало, с калькулятором, а тут нет.... Оказывается в одном месте не дождался прогруза страницы, сорян. Ща все ок. В любом случае ты мне здорово помог, спасибо!
 
  • Спасибо
Реакции: SHILY

Viking01

Client
Регистрация
19.08.2017
Сообщения
228
Благодарностей
151
Баллы
43
не забудьте только, что в методы, которые в общем коде, нужно также передавать сущности project и instance, если хотите с ними работать.
 
  • Спасибо
Реакции: arbplv

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Благодарностей
23
Баллы
18
не забудьте только, что в методы, которые в общем коде, нужно также передавать сущности project и instance, если хотите с ними работать.
Да, это крутой функционал, ща сильно подсокращу код свой...
у меня вот так, вроде как работает
1632508833434.png
 

Viking01

Client
Регистрация
19.08.2017
Сообщения
228
Благодарностей
151
Баллы
43
Да, это крутой функционал, ща сильно подсокращу код свой...
у меня вот так, вроде как работает
Посмотреть вложение 83276
ну на вскидку норм :-)
рекомендую больше логов только добавлять, код без тестов логов - это зло)
ну как минимум, по каждому логическому шагу.
 
  • Спасибо
Реакции: arbplv

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Благодарностей
23
Баллы
18
ну на вскидку норм :-)
рекомендую больше логов только добавлять, код без тестов логов - это зло)
ну как минимум, по каждому логическому шагу.
Подскажи плиз, если знаешь, как оформить функцию в функции в общем коде. У меня есть поиск нескольких элементов, которые повторяются потом в функциях, хочу этот поиск 1 раз написать в функцию, и уже потом в других функциях вызывать ее. Спс)
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
Подскажи плиз, если знаешь, как оформить функцию в функции в общем коде. У меня есть поиск нескольких элементов, которые повторяются потом в функциях, хочу этот поиск 1 раз написать в функцию, и уже потом в других функциях вызывать ее. Спс)
как обычный метод в классе прописываешь и вызываешь как функцию.

83413
 
  • Спасибо
Реакции: arbplv

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Благодарностей
23
Баллы
18

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
ой как красиво, это можно 2 элемента возвращать, верно?
нет. это я для примера написал. можно возвращать объект. а объект может быть очень сложным по своей структуре
например я делаю отдельный класс
83415

создаю функцию для обработки данных, и в качестве возвращаемого объекта я указываю новый класс
83416
и после работы я формирую данные и возвращаю заполненный объект
83417

это я щас очень упрощенно про объектно-ориентированную структуру пояснил. ну вот очень поверхностно.
 

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Благодарностей
23
Баллы
18
нет. это я для примера написал. можно возвращать объект. а объект может быть очень сложным по своей структуре
например я делаю отдельный класс
Посмотреть вложение 83415

создаю функцию для обработки данных, и в качестве возвращаемого объекта я указываю новый класс
Посмотреть вложение 83416
и после работы я формирую данные и возвращаю заполненный объект
Посмотреть вложение 83417

это я щас очень упрощенно про объектно-ориентированную структуру пояснил. ну вот очень поверхностно.
Спасибо.
Я понял, да, я только начинаю въезжать в ооп, это прям сильно... Весь шаблон сейчас по тихому запихиваю в общий код.
 

Viking01

Client
Регистрация
19.08.2017
Сообщения
228
Благодарностей
151
Баллы
43
Подскажи плиз, если знаешь, как оформить функцию в функции в общем коде. У меня есть поиск нескольких элементов, которые повторяются потом в функциях, хочу этот поиск 1 раз написать в функцию, и уже потом в других функциях вызывать ее. Спс)
напиши какой код хочешь засунуть в функцию
 
  • Спасибо
Реакции: arbplv

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Благодарностей
23
Баллы
18

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)