С# Можно ли в имя переменной вставить значение другой переменной?

greengou

Client
Регистрация
09.02.2015
Сообщения
10
Благодарностей
2
Баллы
3
Есть снипет:
Код:
project.Variables["var1"].Value = project.Variables["var_row"].Value.Split(';')[0];
Но var1 заранее неизвестна, мы получаем ее из парсинга и она хранится в другой переменной var_size. Можно ли вместо var1 как-то использовать значение из var_size? Что-то типа такого:

Код:
project.Variables["{-Variable.var_size-}"].Value = project.Variables["var_row"].Value.Split(';')[0];
Этот пример работает в РМ, но в ZP значение не берется и появляется ошибка:
CSharp OwnCode No such variable: {-Variable.var_size-}
 

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 544
Баллы
113
C#:
string varSize = project.Variables["var_size"].Value;
project.Variables[varSize].Value = project.Variables["var_row"].Value.Split(';')[0];
 

greengou

Client
Регистрация
09.02.2015
Сообщения
10
Благодарностей
2
Баллы
3
C#:
string varSize = project.Variables["var_size"].Value;
project.Variables[varSize].Value = project.Variables["var_row"].Value.Split(';')[0];
Спасибо за помощь. Но, возможно, я не совсем все описал, но нужно немного другое. Переменная var_size может иметь разные значения, например, small, medium, big и в зависимости от этих значений нам нужно сохранять в разные переменные, то есть, сохранять нужно будет:
small в var_small;
medium в var_medium;
big в var_big.
Повторюсь, что в РМ работает вот такой вариант:
project.Variables["var_{-Variable.var_size-}"].Value = project.Variables["var_row"].Value.Split(';')[0];
где вместо {-Variable.var_size-} подставляется значение из var_size (как в случае кубиков), например small, но в ZP начинает искать именно переменную var_{-Variable.var_size-} (( Из-за чего такая разница в работе РМ и ZP?
 

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 544
Баллы
113
Спасибо за помощь. Но, возможно, я не совсем все описал, но нужно немного другое. Переменная var_size может иметь разные значения, например, small, medium, big и в зависимости от этих значений нам нужно сохранять в разные переменные, то есть, сохранять нужно будет:
small в var_small;
medium в var_medium;
Тогда так:
C#:
string varSize = project.Variables["var_size"].Value;
project.Variables["var_"+varSize].Value = project.Variables["var_row"].Value.Split(';')[0];
2017-04-05_21-21-16.png
где вместо {-Variable.var_size-} подставляется значение из var_size (как в случае кубиков), например small, но в ZP начинает искать именно переменную var_{-Variable.var_size-} (( Из-за чего такая разница в работе РМ и ZP?
Вероятно, причина в том, что весь код проекта компилируется на старте шаблона т.е. 1 раз. И поэтому конструкция {-Variable.var_size-} в C# коде никак не меняется.
Да и неправильно её использовать, так как она никак не относится к коду. Пример решения описал выше.
 
Последнее редактирование:
  • Спасибо
Реакции: greengou

greengou

Client
Регистрация
09.02.2015
Сообщения
10
Благодарностей
2
Баллы
3
Вероятно, причина в том, что весь код проекта компилируется на старте шаблона т.е. 1 раз. И поэтому конструкция {-Variable.var_size-} в C# коде никак не меняется.
Да и неправильно её использовать, так как она никак не относится к коду. Пример решения описал выше.
Спасибо большое за помощь! В принципе, и первого варианта оказалось достаточно, просто я по своей невнимательности не до конца разобрался с ответом. Сейчас все работает так как нужно...
 

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