[РЕШЕНО] Как вернуть значение из общего кода в переменные?

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 518
Благодарностей
1 316
Баллы
113
Доброго времени. Подскажите, пожалуйста, есть ли возможность возвращать значение из общего кода?

В общем коде:
C#:
    // Счетчик
    public class Counter
    {
        public static object Go(string Schetchik, string Schetchik2, ZennoLab.InterfacesLibrary.ProjectModel.IZennoPosterProjectModel project, ZennoLab.CommandCenter.Instance instance)
        {

            Schetchik = "Иван";
            Schetchik2 = "Петя";

            return "good";
        }
    }
И допустим в кубике бывают разные переменные:
C#:
Counter.Go(project.Variables["Переменна1"].Value, project.Variables["Переменная2"].Value, project, instance);
Как мне подставляя разные переменные в кубик с C#, получать из общего кода в них результат?
project.Variables["Переменна1"].Value = "Иван";
project.Variables["Переменна2"].Value = "Петя";
 
  • Спасибо
Реакции: vedi108

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 718
Баллы
113
у переменной есть имя. тип string
данные в переменной тоже тип string

надо передавать имя переменной, а не данные.
Counter.Go("Переменна1", "Переменная2", project, instance);

и присваивать в коде.
project.Variables[Schetchik].Value = "Иван";
project.Variables[Schetchik2].Value = "Петя";
 
  • Спасибо
Реакции: Gunjubasik

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
726
Благодарностей
476
Баллы
63
Если мы работаем с project и instance, то наверно лучше их реализовать через конструктор, потому что скорей всего мы будем их использовать не в одном методе.
C#:
public class Counter
{
    private static ZennoLab.InterfacesLibrary.ProjectModel.IZennoPosterProjectModel _project;
    private static ZennoLab.CommandCenter.Instance _instance; //Возможно его стоит вообще убрать, не понятно зачем нам в Счетчиках работать с браузером.

    public Counter(ZennoLab.InterfacesLibrary.ProjectModel.IZennoPosterProjectModel project, ZennoLab.CommandCenter.Instance instance)
    {
        _project = project;
        _instance = instance;
    }

    public static void Go(string value, string value2) //не понял зачем использовать object, возможно void подойдет лучше
    {
        _project.Variables["counter"].Value = value;
        _project.Variables["counter2"].Value = value2;
    }
}
Работа в кубиках
C#:
new Counter(project, instance); \\инициализируем класс, если есть еще не статичные методы то через var
Counter.Go("Иван", "Петя");

var result = project.Variables["counter"].Value;
var result2 = project.Variables["counter2"].Value;
project.SendInfoToLog($"{result}\t{result2}");
 
  • Спасибо
Реакции: vedi108 и Gunjubasik

vedi108

Client
Регистрация
22.08.2022
Сообщения
16
Благодарностей
3
Баллы
3
Вопрос к знающим теме.
Из ОБЩЕГО Кода напрямую в переменную проекта можно положить значение , если можно, то как это правильно сделать?
что-то типа как это делается в кубиках C#,
project.Variables["counter"].Value="один";
У меня в общем коде такое действие выдаёт ошибку.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 718
Баллы
113
Вопрос к знающим теме.
Из ОБЩЕГО Кода напрямую в переменную проекта можно положить значение , если можно, то как это правильно сделать?
что-то типа как это делается в кубиках C#,
project.Variables["counter"].Value="один";
У меня в общем коде такое действие выдаёт ошибку.
пост выше... там все расписано, как прокинуть project в общий код.
 
  • Спасибо
Реакции: vedi108

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