我认为当您将断点拖放到另一个分支并且您正在使用某种类型的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;
}