抱歉,关于奇怪的问题标题,但我真的不知道该怎么称呼它。这对我来说根本没有意义。下面是代码:C#:为什么忽略此代码?
public partial class ParameterPanel : FlowLayoutPanel
{
...
public void SetContents(IEnumerable<IParameter> parameters)
{
if (parameters == null || !parameters.Any())
return;
SuspendLayout();
Controls.Clear();
foreach (IParameter parameter in parameters)
{
Control control = Factory.Create(parameter);
Controls.Add(control);
}
Console.WriteLine("???");
ResumeLayout(false);
PerformLayout();
}
}
奇怪的是,有时代码不会继续执行Console.WriteLine
我的方法开始打破,并尝试步吧。它进入foreach循环,但在最后一项之后,该方法返回?它永远不会到达Console.WriteLine
。我只是不明白...这怎么可能?最奇怪的是,它总是不会发生。但它一贯发生在它所做的事情上。
任何人有什么线索是怎么回事?我甚至不知道从哪里开始寻找这个bug。
Controls.Add()在这一点上失败了吗? –
我认为一个例外会把你踢出这个方法...... –
啊,grr,找到了它。它是由工厂创建的控件之一的构造函数中发生的NullReferenceException。抛弃我的东西是,这个异常没有使任何事情崩溃。它只是......发生并被忽略,显然。注意到它在输出控制台。必须在Debug - > Exceptions ...菜单中打开该异常的Break事件。哦,好吧...... *叹息* – Svish