Изучаю c#

Form

Client
Регистрация
05.09.2020
Сообщения
314
Благодарностей
117
Баллы
43
Приветствую! Постепенно осваиваю c# и столкнулся с такой проблемой, что я напрочь не понимаю как объединять их в один кубик. Подскажите на примере:

C#:
string data = project.Variables["jjj"].Value;data=data.Replace(@" ",@"+");project.Variables["jjj"].Value=data;string text = project.ExecuteMacro(project.Variables["jjj"].Value);project.Variables["jjj"].Value = Macros.TextProcessing.Replace(text, "%", "\r\n", "Text", "All");string text2 = project.ExecuteMacro(project.Variables["jjj"].Value);Macros.TextProcessing.ToList(text2, "\r\n", "Text", project, project.Lists["jjj"]);var list = project.Lists["jjj"];Random rnd = new Random();lock (SyncObjects.ListSyncer) {int r = rnd.Next(list.Count);project.Variables["jjj"].Value = list[r];}
C#:
string data = project.Variables["lr"].Value;data=data.Replace(@" ",@"+");project.Variables["lr"].Value=data;string text = project.ExecuteMacro(project.Variables["lr"].Value);project.Variables["lr"].Value = Macros.TextProcessing.Replace(text, "%", "\r\n", "Text", "All");string text2 = project.ExecuteMacro(project.Variables["lr"].Value);Macros.TextProcessing.ToList(text2, "\r\n", "Text", project, project.Lists["lr"]);var list = project.Lists["lr"];Random rnd = new Random();lock (SyncObjects.ListSyncer) {int r = rnd.Next(list.Count);project.Variables["lr"].Value = list[r];}
у меня проект практически полностью построен на c#, но из множества кубиков, не могу понять принцип их объединения.
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Сначала для читабельности раздели по строкам
 
  • Спасибо
Реакции: Astraport

Form

Client
Регистрация
05.09.2020
Сообщения
314
Благодарностей
117
Баллы
43
Сначала для читабельности раздели по строкам
Это так принципиально? Если да, то ок завтра разделю, с телефона неудобно. Они идентичны, разница только в названиях переменной и списка, в первом переменная jjj и список jjj, второй аналогично всё lr
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 787
Благодарностей
2 453
Баллы
113
Это так принципиально?
Ну, скажем так, если Вы хотите, чтобы Вам помогли разобраться с проблемой - то наверно нужно сделать так, чтобы людям было комфортно быстро пробежаться взглядом и понять что именно Вы хотите, не вдаваясь в подробности реализации.
Код 1:
string data = project.Variables["jjj"].Value;
data=data.Replace(@" ",@"+");
project.Variables["jjj"].Value=data;
string text = project.ExecuteMacro(project.Variables["jjj"].Value);
project.Variables["jjj"].Value = Macros.TextProcessing.Replace(text, "%", "\r\n", "Text", "All");
string text2 = project.ExecuteMacro(project.Variables["jjj"].Value);
Macros.TextProcessing.ToList(text2, "\r\n", "Text", project, project.Lists["jjj"]);
var list = project.Lists["jjj"];
Random rnd = new Random();
lock (SyncObjects.ListSyncer) {
    int r = rnd.Next(list.Count);
    project.Variables["jjj"].Value = list[r];
}
Код 2:
string data = project.Variables["lr"].Value;
data=data.Replace(@" ",@"+");
project.Variables["lr"].Value=data;
string text = project.ExecuteMacro(project.Variables["lr"].Value);
project.Variables["lr"].Value = Macros.TextProcessing.Replace(text, "%", "\r\n", "Text", "All");
string text2 = project.ExecuteMacro(project.Variables["lr"].Value);
Macros.TextProcessing.ToList(text2, "\r\n", "Text", project, project.Lists["lr"]);
var list = project.Lists["lr"];
Random rnd = new Random();
lock (SyncObjects.ListSyncer) {
    int r = rnd.Next(list.Count);
    project.Variables["lr"].Value = list[r];
}
я напрочь не понимаю как объединять их в один кубик.
А что именно пишет в логе, когда Вы вставляете этих два кода в один кубик и пытаетесь выполнить проект?
не могу понять принцип их объединения.
В первом коде всем переменным добавьте приставку 1.
В втором коде всем переменным добавьте приставку 2.
И потом можете смело соединять в один кубик - суть в том, чтобы каждый код использовал свои переменные.

Или можно вначале кубика определить переменные и списки, с которыми нужно работать.
И потом обернуть уже код в цикл. Пример реализации:
Пример:
List<string[]> param = new List<string[]>();
param.Add(new[]{"lr", "lr"}); // список и переменная должны существовать - иначе будет ошибка
param.Add(new[]{"jjj", "jjj"});
Random rnd = new Random();
for(int item = 0;item<param.Count;item++) {
    string name_var = param[item][0];
    string name_list = param[item][1];
    string data = project.Variables[name_var].Value;
    data=data.Replace(@" ",@"+");
    project.Variables[name_var].Value=data;
    string text = project.ExecuteMacro(project.Variables[name_var].Value);
    project.Variables[name_var].Value = Macros.TextProcessing.Replace(text, "%", "\r\n", "Text", "All");
    string text2 = project.ExecuteMacro(project.Variables[name_var].Value);
    Macros.TextProcessing.ToList(text2, "\r\n", "Text", project, project.Lists[name_list]);
    var list = project.Lists[name_list];
    lock (SyncObjects.ListSyncer) {
        int r = rnd.Next(list.Count);
        project.Variables[name_var].Value = list[r];
    }
}
 
Последнее редактирование:

radv

Client
Регистрация
11.05.2015
Сообщения
3 788
Благодарностей
1 952
Баллы
113
у меня проект практически полностью построен на c#, но из множества кубиков, не могу понять принцип их объединения.
Если изучаете, то отнеситесь к этому более серьезно. Осмысленные названия переменных. Понимание объектной модели. Комментирование кода (даже для себя, потому что со временем забудете, что и как работает в коде)
Для работы в разных кубиках, нужно чтобы значения переменных, которые используете в разных кубиках были доступны и в другом. Лучше всего использовать общий код, и обращаться к нему.
 

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