C# Как использовать список(List<string>) в другом кубике?

zenno60

Пользователь
Регистрация
09.05.2016
Сообщения
99
Благодарностей
1
Баллы
8
Кубик 1
Код:
string str = project.Variables["stringMulti"].Value;
List<string> stringlist = new List<string>();
stringlist.Add(str);
Кубик 2
Код:
foreach (string item in stringlist)
{
  // listContentproject.Variables["listContent"].Value = item.ToString() + "\r\n";
  project.Variables["listContent"].Value = item.ToString() + "\r\n";  
  project.SendInfoToLog(item.ToString(), true);
  
  return project.Variables["listContent"].Value ;
}
Как использовать список(List<string>) в другом кубике?

Если "да", то как?
Подозреваю, что "List<string> stringlist " нужно объявить глобально.
Но как это сделать?
 
Последнее редактирование:

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
ну используй тогда зеновский список без привязки если ты C# разрываешь на много кубиков
ну или создай в общем коде private или public list
 

zenno60

Пользователь
Регистрация
09.05.2016
Сообщения
99
Благодарностей
1
Баллы
8
ну или создай в общем коде private или public list
Это как?

Сделал так "public List<string> stringlist = new List<string>();"
Код:
string str = project.Variables["stringMulti"].Value;
public List<string> stringlist = new List<string>();
stringlist.Add(str);
не работает
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
Это как?

Сделал так "public List<string> stringlist = new List<string>();"
Код:
string str = project.Variables["stringMulti"].Value;
public List<string> stringlist = new List<string>();
stringlist.Add(str);
не работает
в общем коде, это в using

2018-12-22_024216.png
 
  • Спасибо
Реакции: zenno60

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
823
Баллы
93
Как использовать список(List<string>) в другом кубике?
Использовать project.Context. В зенке есть только string переменные. Но это не удобно, т.к. иногда надо передавать целиком объекты из одно экшена в другой, тот же List<string>.

https://help.zennolab.com/en/v5/zennoposter/5.9/ZennoLab.InterfacesLibrary~ZennoLab.InterfacesLibrary.ProjectModel.IZennoPosterProjectModel~Context.html

В одном экшене
List<string> stringlist = new List<string>();
project.Context["myList"] = stringlist;

В другом
List<string> stringlist = (List<string>)project.Context["myList"];

"myList" - это имя, по нему из project.Context получаем нужный объект, главное, чтобы имя было уникальное, в пределах одного шаблона.
Таким способом можно передавать любые объекты между экшенами.
И не только, project.Context передается и в подпроекты.

upload_2018-12-21_23-27-47.png
 

zenno60

Пользователь
Регистрация
09.05.2016
Сообщения
99
Благодарностей
1
Баллы
8

zenno60

Пользователь
Регистрация
09.05.2016
Сообщения
99
Благодарностей
1
Баллы
8
Кажись понял...
"Проект в проекте"?
 

one

Client
Регистрация
22.09.2015
Сообщения
6 793
Благодарностей
1 264
Баллы
113
  • Спасибо
Реакции: zenno60

zenno60

Пользователь
Регистрация
09.05.2016
Сообщения
99
Благодарностей
1
Баллы
8
в общем коде, это в using
Я правильно вас понял?
Не работает.
"
Компиляция кода Ошибка в действии "CS0103" "Имя "stringlist" отсутствует в текущем контексте". [Строка: 1; Cтолбец: 1]
Компиляция кода Ошибка в действии "CS0103" "Имя "stringlist" отсутствует в текущем контексте". [Строка: 2; Cтолбец: 1]

"
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
что именно не работает
что в коде то ?
 

zenno60

Пользователь
Регистрация
09.05.2016
Сообщения
99
Благодарностей
1
Баллы
8

Вложения

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
CommonCode.stringlist = new List<string>();
 
  • Спасибо
Реакции: zenno60

zenno60

Пользователь
Регистрация
09.05.2016
Сообщения
99
Благодарностей
1
Баллы
8
CommonCode.stringlist = new List<string>();
Сделал как на скрине.
Ошибка:
"
Компиляция кода Ошибка в действии "CS0120" "Для нестатического поля, метода или свойства "ZennoLab.OwnCode.CommonCode.stringList" требуется ссылка на объект". [Строка: 1; Cтолбец: 1]

"
 

Вложения

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
ну так напиши public static, только смотри что в таком случае он будет один для всех потоков
 
  • Спасибо
Реакции: zenno60

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