Глюк с переменной

Kulya

Client
Регистрация
11.09.2016
Сообщения
177
Благодарностей
48
Баллы
28
Всем привет, возникла такая ситуация, есть код:

C#:
lock(SyncObject) {
    try {
        //Если глобалка инициализирована - апаем на 1, возвращаем в переменну.
        var gb_count = project.GlobalVariables["namespace", "global_count"];
    gb_count.Value++;
        return gb_count.Value;
    }
    catch (KeyNotFoundException ex) {
        //Если нет - инииализируем со значением из переменной nachalnoe_znachenie, возвращаем его
        int start_value = int.Parse(project.Variables["nachalnoe_znachenie"].Value);
        project.GlobalVariables.SetVariable("namespace", "global_count", start_value);
        return start_value;
    }
}
В проджекте отрабатывает все нормально, но когда пытаюсь запустить с зенки, вылетает такая ошибка:

Не удается применить операнд "++" типа "string"

В C# я нуб, тапками прошу не кидать)

Помогите пожалуйста
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 599
Баллы
113
попробуй заменить
gb_count.Value++;
на
gb_count.Value = int.Parse(gb_count.Value) + 1;
 

Kulya

Client
Регистрация
11.09.2016
Сообщения
177
Благодарностей
48
Баллы
28
попробуй заменить
gb_count.Value++;
на
gb_count.Value = int.Parse(gb_count.Value) + 1;
Все равно не работает:

Выполнение действия CSharp OwnCode. Наиболее подходящий перегруженный метод для "int.Parse(string)" имеет несколько недопустимых аргументов
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 599
Баллы
113
Все равно не работает:

Выполнение действия CSharp OwnCode. Наиболее подходящий перегруженный метод для "int.Parse(string)" имеет несколько недопустимых аргументов
тогда так
gb_count.Value = Convert.ToInt32(gb_count.Value) + 1
 
  • Спасибо
Реакции: Kulya

Kulya

Client
Регистрация
11.09.2016
Сообщения
177
Благодарностей
48
Баллы
28
В проджекте отрабатывает, а в зенке выбивает:

Выполнение действия CSharp OwnCode: Глобальгый счетчик. Входная строка имела неверный формат.
 

b1zar

Client
Регистрация
29.06.2019
Сообщения
107
Благодарностей
65
Баллы
28
В проджекте отрабатывает, а в зенке выбивает:

Выполнение действия CSharp OwnCode: Глобальгый счетчик. Входная строка имела неверный формат.
Попробуй так
C#:
lock(SyncObject) {
    try {
        //Если глобалка инициализирована - апаем на 1, возвращаем в переменну.
        var gb_count = Convert.ToInt32(project.GlobalVariables["namespace", "global_count"]);
    gb_count++;
        return Convert.ToString(gb_count);
    }
    catch (KeyNotFoundException ex) {
        //Если нет - инииализируем со значением из переменной nachalnoe_znachenie, возвращаем его
        int start_value = int.Parse(project.Variables["nachalnoe_znachenie"].Value);
        project.GlobalVariables.SetVariable("namespace", "global_count", start_value);
        return start_value;
    }
}
Если будет выдавать ошибку, попробуй заменить gb_count++ на gb_count+=1 и поменять тип переменной с var gb_count на int gb_count
 

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