簡體   English   中英

為什么不調用我的方法?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM