Значение int.Parse не может быть null для ненулевой строки

#c#

#c#

Вопрос:

Несмотря на проверку того, что входная строка не является нулевой или пустой, я получаю Value cannot be null исключение при разборе этой строки на целое число. Я еще не отладил его для фактического значения, которое передается функции, потому что у меня уже есть if not string null or empty , прежде чем я попробую проанализировать.

 int groupCredits = 0;
if (!string.IsNullOrEmpty(course.Credits))
    groupCredits  = int.Parse(course.Credits);
  

Исключение:

System.ArgumentNullException: Value cannot be null.
Parameter name: String
at System.Number.StringToNumber(String str, NumberStyles options, NumberBufferamp; number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at System.Int32.Parse(String s)

Комментарии:

1. У вас есть несколько потоков, изменяющих значение кредитов? Если нет, то проверьте, используете ли вы последнюю версию assembly, в которой есть строка. Проверка пустоты IsNullOrEmpty

2. Каково фактическое значение, конечно. Кредиты до сравнения и после сравнения? Вы отладили его (Debug. Напишите (курс. Кредиты) или вручную)?

3. Можете ли вы показать пример значения groupCredits ?

4. Вы уверены, что это строка, вызывающая исключение? Возможно, вы пытаетесь разобрать его на несколько строк ниже.

5. Какая версия . Какую сеть вы используете? Какая платформа? Какая цепочка инструментов?