1

https://github.com/qntmfred/FooTimestamp

AnyCPU 构建配置中的以下程序评估maxTimestampDateTime.MinValue.

public class Foo
{
    public DateTime Timestamp { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        List<Foo> foos = new List<Foo>() { new Foo() { Timestamp = new DateTime(2012, 7, 1) } };
        var maxTimestamp = foos.Any() ? foos.Max(x => x.Timestamp) : new DateTime(2012, 7, 2);
    } // put a breakpoint here - maxTimestamp evaluates to DateTime.MinValue
}

* 自从我第一次发布这个问题以来,我一直在从几个不同的角度追逐这个错误,所以这些评论可能没有多大意义。如果您想查看所有内容,请查看修订历史记录,但我已经删除了大部分原始帖子,以专注于我现在将这个问题简化为的内容。

4

1 回答 1

1

所以看起来这最终成为了一个真正的编译器错误。整洁的。它已在 .NET 4.5 中修复

x64 平台调试器中奇怪的三元运算符行为 https://connect.microsoft.com/VisualStudio/feedback/details/684202

于 2012-07-03T21:58:26.870 回答