プロジェクトをVS2013からVS2015に移行した後、プロジェクトはビルドされなくなりました。次のLINQステートメントでコンパイルエラーが発生します。
static void Main(string[] args)
{
    decimal a, b;
    IEnumerable<dynamic> array = new string[] { "10", "20", "30" };
    var result = (from v in array
                  where decimal.TryParse(v, out a) && decimal.TryParse("15", out b) && a <= b // Error here
                  orderby decimal.Parse(v)
                  select v).ToArray();
}
コンパイラはエラーを返します:
エラーCS0165未割り当てのローカル変数 'b'の使用
この問題の原因は何ですか?コンパイラの設定で修正できますか?
out引数について悪いことすべてを例示しました。それはTryParsenull許容値(または同等のもの)を返しますか?
                where (a = decimal.TryParse(v)).HasValue && (b = decimal.TryParse(v)).HasValue && a <= bがずっと見栄えが良い
                decimal a, b; var q = decimal.TryParse((dynamic)"10", out a) && decimal.TryParse("15", out b) && a <= b;。私はこれを上げるロズリンのバグをオープンしました。
                
bを介して割り当てた後にのみ使用しoutます。