[英]Why isn't my method being called?
我正在安裝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
調用正在工作,我看不出為什么這有什么不同。 請幫助?
謝謝。
您實際上並不是在枚舉。 嘗試:
this.ExecuteAndGet<object>("[dbo].[SomeStoredProcedure]", parameters).ToList();
返回的可枚舉實現為迭代器塊。 直到第一次枚舉迭代器塊中的代碼之后,它們才真正執行,例如,添加調用.ToArray()
或.ToList()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.