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

Я использую библиотеку NPOI для чтения файла Excel, и один столбец имеет цену, которая не всегда устанавливается, когда ячейка пуста, мой код падает, поэтому я пытаюсь увидеть, как я могу сделать свою переменную 0, если ячейка пусто или если анализ не удался, какой бы ни был лучший способ

мой код выглядит следующим образом

 decimal grossPrice = decimal.Parse(row.GetCell(10).ToString());

Ответы [ 2 ]

4 голосов
/ 07 января 2020

Немного в зависимости от используемой вами версии C# вы можете использовать TryParse, которая также доступна для int, float, et c.:

decimal grossPrice = decimal.TryParse(row.GetCell(10).ToString(), out var val) ? 
                     val : your_default_value; //your_default_value = 0 in your case

или

decimal val = 0;
if (decimal.TryParse(row.GetCell(10).ToString(), out val)
{
   //value set
   //not needed, but handy for the completeness of this example
}

else
{
   //value not set (error; assign default value to val)
   //not needed, but handy for the completeness of this example
}
1 голос
/ 07 января 2020

Использование https://docs.microsoft.com/en-us/dotnet/api/system.decimal.tryparse?view=netframework-4.8

Когда этот метод возвращает, содержит десятичное число, которое эквивалентно значению цифры c, содержащемуся в s, если преобразование завершилось успешно, или ноль, если преобразование не удалось.

decimal grossPrice = 0;
decimal.TryParse(row.GetCell(10).ToString(), out grossPrice);
...