Как контролировать, если кто-то отправляет пустую строку с десятичным значением? - PullRequest
0 голосов
/ 27 октября 2019

У меня есть функция веб-службы, которая имеет десятичное значение, т.е. BRGEW.

Предполагается, что клиент отправляет десятичное значение, но он отправляет строку из пользовательского интерфейса SOAP, и при преобразовании происходит сбой.

Я сделал это, чтобы управлять им, но он не работает.

if (General.BRGEW == 0 || General.BRGEW.ToString() == "") {
  General.BRGEW =0;
}

Как я могу это контролировать?

Ответы [ 4 ]

0 голосов
/ 27 октября 2019
if (General.BRGEW == 0)
{
    General.BRGEW = 0;
}

мало что меняет :) Если RRGEW уже равно 0, то установка его на ноль будет иметь небольшой эффект.


A. Сделайте так, чтобы клиент отправил номер

Это было бы самым простым решением.

B. Разобраться с этим

Если вы не можете заставить клиента отправить номер, то может помочь следующее:

  1. Сделать General.BRGEW в виде строки.
  2. Создать другое свойство, напримерGeneral.BRGEWAsInt
public class X {
    public string BRGEW {get; set;}
    public int BRGEWAsInt => Int32.TryParse(BRGEW, out var number)
         ? number
         : 0;
  }

Вам не нужно создавать собственность, вы можете просто разобрать, когда вам нужно.

0 голосов
/ 27 октября 2019

Вы можете попробовать это, если хотите убедиться, что пользовательский ввод десятичный или нет

var check= double.IsNaN(variable); //It will return boolean value after that add your code logic
0 голосов
/ 27 октября 2019

Сначала необходимо проверить, является ли значение нулевым или пустым, если оно не является нулевым или пустым, а затем преобразовать его.

decimal number;
string value = "";
if(!String.IsNullOrEmpty(value))
{

  if(Decimal.TryParse(value, out number))
   {
     Console.WriteLine("Converted '{0}' to {1}.", value, number);
    }
    else
    {
      Console.WriteLine("Unable to convert '{0}'.", value);
    }

}
0 голосов
/ 27 октября 2019

Полагаю, вам нужно String.IsNullOrEmpty (String) метод

Проверьте здесь

...