调试模式 - Collection Constructor上的LINQ NullReferenceException

时间:2012-07-20 01:54:27

标签: linq debugging collections nullreferenceexception

我认为当您将断点拖放到另一个分支并且您正在使用某种类型的LINQ查询时,我在Visual Studio中发现了一个错误。如果在下面的“if(x)”上放置断点并将执行行拖到else分支,则代码将在“test2”集合的初始化/构造函数上失败。

我之前在LINQ中使用了这种“double from”语法进行连接,我认为这是一种公认​​的做法 - 不确定是否有一个术语。

无论如何,还有其他人可以确认这种奇怪的调试行为吗?

    public class TestEntity
    {
        public int TestID { get; set; }
        public string Test { get; set; }
    }

    public class Test2Entity
    {
        public int Test2ID { get; set; }
        public string Test2 { get; set; }
    }

    private void button1_Click(object sender, EventArgs e)
    {
            bool x = Calc();

            if (x) //breakpoint here
            {
                int y = 1;
            }
            else
            {
                System.Collections.ObjectModel.Collection<TestEntity> test = new System.Collections.ObjectModel.Collection<TestEntity>();
                System.Collections.ObjectModel.Collection<Test2Entity> test2 = new System.Collections.ObjectModel.Collection<Test2Entity>(); // fails here

                var z = from t in test
                        from t2 in test2
                        select t.TestID;
            }
        }

        private bool Calc()
        {
            return true;
        }

0 个答案:

没有答案