为什么我的方法不被调用?

时间:2013-11-22 10:38:05

标签: c# debugging

如果重要的话,我正在安装了.NET 4.5的Windows 8计算机上运行在VS 2010 SP 1中针对.NET 3.5编译的C#项目。

我的方法如下所示:

private IEnumerable<TModel> ExecuteAndGet<TModel>(string name, IEnumerable<SqlParameter> parameters)
        where TModel : new()
{ // <-- Breakpoint 1

    // Non-trivial code so I doubt the method call is being optimized away
    // Or something if that's even possible.
}

在同一个班级中,我用不同的方法调用ExecuteAndGet,如下所示:

this.ExecuteAndGet<object>("[dbo].[SomeStoredProcedure]", parameters); // <-- Breakpoint 2

这绝对是该方法的唯一重载。在调试模式下运行程序时,我点击了断点2.我尝试了常规的“F5”和“Step INTO”,但它完全跳过了方法,它跳过了断点1.我不知道为什么会发生这种情况。对ExecuteAndGet的其他调用正在发挥作用,我不明白为什么这有任何不同。请帮帮忙?

感谢。

2 个答案:

答案 0 :(得分:3)

你实际上并没有枚举。尝试:

this.ExecuteAndGet<object>("[dbo].[SomeStoredProcedure]", parameters).ToList();

答案 1 :(得分:1)

返回的可枚举实现为迭代器块。迭代器块内的代码在第一次枚举之前实际上不会执行,例如添加致电.ToArray().ToList()