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 に答える