Инициация глобальной переменной С#

svaminar

Client
Регистрация
21.08.2013
Сообщения
834
Благодарностей
378
Баллы
63
Код:
lock(SyncObject)
{
    IGlobalVariable gv = null;
    try
    {
        // пытаемся получить глобальную переменную
        gv = project.GlobalVariables["Proverka", "project.Variables[test].Value"];
    }
    catch(KeyNotFoundException exception)
    {
        // если не удалось получить, то инициализируем значением по умолчанию.
        project.GlobalVariables.SetVariable("Proverka", "project.Variables[test].Value","1");
    }
}
Проблема в том что имя глобальной переменной получается project.Variables[test].Value
а нужно чтоб ставило значения переменной тест
Подскажите чуток пожалуйста
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
кавычки уберите "project.Variables[test].Value"
 
  • Спасибо
Реакции: svaminar

nomarketing

Client
Регистрация
01.11.2013
Сообщения
907
Благодарностей
178
Баллы
43
Код:
lock(SyncObject)
{
    IGlobalVariable gv = null;
    try
    {
        // пытаемся получить глобальную переменную
        gv = project.GlobalVariables["Proverka", "project.Variables[test].Value"];
    }
    catch(KeyNotFoundException exception)
    {
        // если не удалось получить, то инициализируем значением по умолчанию.
        project.GlobalVariables.SetVariable("Proverka", "project.Variables[test].Value","1");
    }
}
Проблема в том что имя глобальной переменной получается project.Variables[test].Value
а нужно чтоб ставило значения переменной тест
Подскажите чуток пожалуйста
А почему вы не делаете так

string locval = project.Variables[test].Value;
gv = project.GlobalVariables["Proverka", locval];
 

svaminar

Client
Регистрация
21.08.2013
Сообщения
834
Благодарностей
378
Баллы
63
Просто что дальне хочу еще цикл писать и ето просто кусок кода с форума.
Которий запустил и правлю под себя
 

svaminar

Client
Регистрация
21.08.2013
Сообщения
834
Благодарностей
378
Баллы
63
Да вопрос по пространству имен
Адрес почти обезательно или можно ставить любое значения (хочу на каждий шаблон отдельное значение)
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
любое
 
  • Спасибо
Реакции: svaminar

svaminar

Client
Регистрация
21.08.2013
Сообщения
834
Благодарностей
378
Баллы
63
подскажите еще такой вопрос
Ошибка в действии "CS0029" "Неявное преобразование типа "string" в "ZennoLab.InterfacesLibrary.ProjectModel.IGlobalVariable" невозможно". [Строка: 15; Cтолбец: 19]
сам код
Код:
lock(SyncObject)
{
    IGlobalVariable gv = null;
    try
    {
        // пытаемся получить глобальную переменную
        gv = project.GlobalVariables["Proverka", project.Variables["test"].Value];
    }
    catch(KeyNotFoundException exception)
    {
        // если не удалось получить, то инициализируем значением по умолчанию.
        project.GlobalVariables.SetVariable("Proverka", project.Variables["test"].Value,"1");
    }
   IGlobalVariable portload = null;
    potload = project.GlobalVariables["Proverka", project.Variables["test"].Value];
   if (potload = "1") // переменная равна 1
   {
     return "ok"; // возвращаем ошибку
   }
   else // інакше
   {
    throw new Exception("");
   }
}
Суть в том проверяем наличие переменной если нет то создаем. Дальше проверяем значения глобальной переменной если 1 то завершаем код с ошибкой, и тогда в другой плитке добавим к простой переменной тест +1
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
if (potload.Value == "1")
 

svaminar

Client
Регистрация
21.08.2013
Сообщения
834
Благодарностей
378
Баллы
63
Ошибка в действии "CS0103" "Имя "potload" отсутствует в текущем контексте". [Строка: 15; Cтолбец: 8]
 

ssXXXss

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

svaminar

Client
Регистрация
21.08.2013
Сообщения
834
Благодарностей
378
Баллы
63
там только 2 значения либо 1 либо 0
Но и без кавичек ошибка таж самая
итоговий код
Код:
lock(SyncObject)
{
    IGlobalVariable gv = null;
    try
    {
        // пытаемся получить глобальную переменную
        gv = project.GlobalVariables["Proverka", project.Variables["test"].Value];
    }
    catch(KeyNotFoundException exception)
    {
        // если не удалось получить, то инициализируем значением по умолчанию.
        project.GlobalVariables.SetVariable("Proverka", project.Variables["test"].Value,"1");
    }
   IGlobalVariable portload = null;
   potload = project.GlobalVariables["Proverka", project.Variables["test"].Value];
    if (potload.Value == 1)   // переменная равна 1
   {
     return "ok"; // возвращаем ошибку
   }
   else // інакше
   {
    throw new Exception("");
   }
}
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
Ошибка в действии "CS0103" "Имя "potload" отсутствует в текущем контексте". [Строка: 15; Cтолбец: 8]
Код:
   IGlobalVariable portload = null;
    portload = project.GlobalVariables["Proverka", project.Variables["txt"].Value];
   if (portload = "1") // переменная равна 1
замени
 

svaminar

Client
Регистрация
21.08.2013
Сообщения
834
Благодарностей
378
Баллы
63
Добавилось еще такая ошибка
Ошибка в действии "CS0029" "Неявное преобразование типа "string" в "ZennoLab.InterfacesLibrary.ProjectModel.IGlobalVariable" невозможно". [Строка: 15; Cтолбец: 16]
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
аха мудришь ты что то тут, вот держи
Код:
lock(SyncObject)
{
    IGlobalVariable gv = null;
    try
    {
        // пытаемся получить глобальную переменную
        gv = project.GlobalVariables["Proverka", project.Variables["txt"].Value];
    }
    catch(KeyNotFoundException exception)
    {
        // если не удалось получить, то инициализируем значением по умолчанию.
        project.GlobalVariables.SetVariable("Proverka", project.Variables["txt"].Value,"1");
    }
   IGlobalVariable portload = null;
    portload = project.GlobalVariables["Proverka", project.Variables["txt"].Value];
   if (portload.Value == "1") // переменная равна 1
   {
     return "ok"; // возвращаем ошибку
   }
   else // інакше
   {
    return "no";
   }  

}
 

svaminar

Client
Регистрация
21.08.2013
Сообщения
834
Благодарностей
378
Баллы
63
да спасибо.
Чего то заглючил мейкер от того писались ошибки.
Теперь ок
 

ssXXXss

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

svaminar

Client
Регистрация
21.08.2013
Сообщения
834
Благодарностей
378
Баллы
63
:bt:большущий респект я б нивжись не нашел
 

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