Очистка значения переменной на c#

Home_KreKer

Client
Регистрация
05.12.2016
Сообщения
156
Благодарностей
37
Баллы
28
ДД. Есть вопрос. по обнулению(отчистке) переменной средствами снипета c# Далее есть проверка на с# пустая переменная или нет.
Отчищаю переменную так:
project.Variables["Переменная"].Value = Convert.ToString(null);

Проверяю пустая ли переменная так:
var x1 = project.Variables["Переменная"].Value;
if (x1!="")
return "Ne pusto";
return "Pusto";

Иногда почему то в PM получаю ответ что переменная "Ne pusto" - хотя переменная пустая.
Пока не отчистишь переменную через кубик "Установить значение переменной" - снипет работает не корректно.

Кто то встречал подобную проблему? и знает почему она возникает?
 

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 777
Благодарностей
1 448
Баллы
113
  • Спасибо
Реакции: kagorec и Home_KreKer

Home_KreKer

Client
Регистрация
05.12.2016
Сообщения
156
Благодарностей
37
Баллы
28
Нужно так:

C#:
project.Variables["Переменная"].Value = "";

или так

C#:
project.Variables["Переменная"].Value = String.Empty;
Спасибо большое!
Пожалуйста, скажите, в чем ошибка в моем способе? Если не сложно
 

kapelan28

Client
Регистрация
22.09.2015
Сообщения
469
Благодарностей
186
Баллы
43
return "Ne pusto";
return "Pusto";
2 подряд return. Он не сможет отработать второй return никогда. Вот, если бы, поставили условие - тогда уже был бы другой разговор.
Код:
if (x1!="") {
project.SendInfoToLog("Не пусто: " +x1, true);
} else {
project.SendInfoToLog("Пусто", true);
}
 
  • Спасибо
Реакции: Home_KreKer

Home_KreKer

Client
Регистрация
05.12.2016
Сообщения
156
Благодарностей
37
Баллы
28
2 подряд return. Он не сможет отработать второй return никогда. Вот, если бы, поставили условие - тогда уже был бы другой разговор.
Код:
if (x1!="") {
project.SendInfoToLog("Не пусто: " +x1, true);
} else {
project.SendInfoToLog("Пусто", true);
}
Спасибо! попробую)
 

Dr.Pipetka

Client
Регистрация
12.12.2017
Сообщения
1 307
Благодарностей
865
Баллы
113
  • Спасибо
Реакции: doc

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
ДД. Есть вопрос. по обнулению(отчистке) переменной средствами снипета c# Далее есть проверка на с# пустая переменная или нет.
Отчищаю переменную так:
project.Variables["Переменная"].Value = Convert.ToString(null);

Проверяю пустая ли переменная так:
var x1 = project.Variables["Переменная"].Value;
if (x1!="")
return "Ne pusto";
return "Pusto";

Иногда почему то в PM получаю ответ что переменная "Ne pusto" - хотя переменная пустая.
Пока не отчистишь переменную через кубик "Установить значение переменной" - снипет работает не корректно.

Кто то встречал подобную проблему? и знает почему она возникает?
может она и не пустая, а лишь выглядит как пустая
 
  • Спасибо
Реакции: Home_KreKer

DevOps

Client
Регистрация
30.11.2020
Сообщения
496
Благодарностей
314
Баллы
63
Здравствуйте. С очисткой переменной понятно
project.Variables["Переменная"].Value = String.Empty;
Подскажите пожалуйста для блока "C# Свой код" как
- удалить переменную
- удалить список (список в проекте не привязан к файлу и существует только в период выполнения "C# Свой код")
Спасибо
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 788
Благодарностей
2 453
Баллы
113
2 подряд return. Он не сможет отработать второй return никогда. Вот, если бы, поставили условие - тогда уже был бы другой разговор.
Код:
if (x1!="") {
project.SendInfoToLog("Не пусто: " +x1, true);
} else {
project.SendInfoToLog("Пусто", true);
}
Почему? Вы вводите людей в заблуждение.
Если в конструкции if(true) не использовать фигурные скобки, то это говорит компилятору, что после условия будет всего одна операция. Из-за чего код в шапке темы вполне рабочий - проверил.
C#:
var x1 = project.Variables["Переменная"].Value;
if (x1!="")
return "Ne pusto";
return "Pusto";
78724


Но, может быть действительно в переменной был пробел - тогда результат был бы другой.
78725


Чтобы игнорировать пробелы, возможно нужно использовать проверку что-то вроде:
C#:
var x1 = project.Variables["temp"].Value;
if (!string.IsNullOrWhiteSpace(x1))
return "Ne pusto";
return "Pusto";
 

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