将项目从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参数的所有问题。那会TryParse返回一个可空值(或等效值)。
                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;。我已经打开了罗斯林(Roslyn)的bug来提出这个问题。
                
b在通过out参数分配后使用。