Увеличение счетчика глобальной переменной на C# нужна строчка кода

maksimk26

Client
Регистрация
19.08.2020
Сообщения
5
Благодарностей
11
Баллы
3
Ребят, помогите, пж-та, кто разбирается в C#. Есть глобальная переменная project.GlobalVariables["[email protected]", "example"], нужно увеличивать ее на 1 на C#, пробовал код
"project.GlobalVariables["[email protected]", "example"] = Convert.ToString(Convert.ToInt32(project.GlobalVariables["[email protected]", "example"])+1);"
но выходит ошибка "Компиляция кода Ошибка в действии "CS0200" "Property or indexer 'IGlobalVariables.this[string, string]' cannot be assigned to -- it is read only".
Я не особый знаток c#, киньте, пж-та, правильную строчку кода для увеличения счетчика, кто понимает, либо направление куда копать, чтобы сделать такое. Заранее благодарен.
 

maksimk26

Client
Регистрация
19.08.2020
Сообщения
5
Благодарностей
11
Баллы
3
Ребят, помогите, пж-та, кто разбирается в C#. Есть глобальная переменная project.GlobalVariables["[email protected]", "example"], нужно увеличивать ее на 1 на C#, пробовал код
"project.GlobalVariables["[email protected]", "example"] = Convert.ToString(Convert.ToInt32(project.GlobalVariables["[email protected]", "example"])+1);"
но выходит ошибка "Компиляция кода Ошибка в действии "CS0200" "Property or indexer 'IGlobalVariables.this[string, string]' cannot be assigned to -- it is read only".
Я не особый знаток c#, киньте, пж-та, правильную строчку кода для увеличения счетчика, кто понимает, либо направление куда копать, чтобы сделать такое. Заранее благодарен.
Нашел корректный код будет:
project.GlobalVariables["[email protected]", "example"].Value = Convert.ToInt32(project.GlobalVariables["[email protected]", "example"].Value.ToString())+1;
 
  • Спасибо
Реакции: fridayman, fedorgen и 2276

fridayman

Client
Регистрация
25.03.2018
Сообщения
169
Благодарностей
259
Баллы
63
Еще вариант, увеличить счетчик обычной переменной:

C#:
int newVariable = Convert.ToInt32(project.Variables["newVariable"].Value.ToString())+1;
project.Variables["newVariable"].Value = Convert.ToString(newVariable);
 
  • Спасибо
Реакции: vedi108 и maksimk26

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
742
Баллы
113
C#:
lock(SyncObject) {
    
    try {
        //Если глобалка инициализирована - апаем на 1, возвращаем в переменну.
        var gb_count = project.GlobalVariables["namespace", "global_count"];
        gb_count.Value = Convert.ToInt32(gb_count.Value.ToString())+1;
        return gb_count.Value;
        
    }
    catch (KeyNotFoundException ex) {
        //Если нет - инииализируем со значением 0, возвращаем ноль
        project.GlobalVariables.SetVariable("namespace", "global_count", 0);
        return 0;
    }
    
}
 
  • Спасибо
Реакции: maksimk26

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
742
Баллы
113
Из своих записей, наеденных на форуме
 

Вложения

  • Спасибо
Реакции: maksimk26

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
742
Баллы
113
Лучше используй название шаблона, в глобальной переменной, я один раз так конкретно запутался, переделывал один и тот же шаблон,и часть скопировал,а в это время, старый рабочий шаблон работал с таблицей, и новый шаблон, с такими глобальными переменными, и есть файл ексель, там каша получилась
1647159554227.png1647159582551.png
 
  • Спасибо
Реакции: maksimk26

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