Да, поскольку вы подозреваете, что разница заключается в том, что модификатор «out».
Это функция, добавленная в C # 7, которая позволяет объявлять переменную в том месте, где вы хотите использовать ее как аргумент.
Это может быть удобно, поскольку в противном случае вам нужно было бы объявить parsedNumber
перед вызовом метода.
Вы можете прочитать об этом здесь, в разделе «Out variables».
https://blogs.msdn.microsoft.com/dotnet/2016/08/24/whats-new-in-csharp-7-0/
EDIT
Что касается того, почему переменная по-прежнему находится в области вне if, это, безусловно, может ввести в заблуждение, но это было выбором дизайна при ее реализации, особенно для случая «если» и точно так что его можно использовать в методах «try».
Вы можете сослаться на этот комментарий (на самом деле вы можете взглянуть на всю дискуссию, чтобы увидеть различные точки зрения о том, как реализовать это ).
https://github.com/dotnet/roslyn/issues/12939#issuecomment-255650834
Похоже, что ваше текстовое поле добавлено в область отчета, которая не является «областью данных» (например, таблицы или списка). Область данных будет ссылаться на конкретный набор данных отчета как на одно из его свойств, поэтому службы Reporting Services знают, что все ссылки на поля внутри этой области данных относятся к этому набору данных. То, что эта ошибка пытается сказать (довольно подробным образом):
. Так что, если поле «WK1» было из набора данных «MyDataset1», выражение для ссылки на это поле будет выглядеть так:
=Sum(Fields!WK1, "MyDataset1")
См. также: Использование наборов полей данных набора данных в выражениях