2010-10-04 88 views
2

我無法弄清楚Re#用一段代碼抱怨什麼。一切都編譯好,並按照它應該的方式工作,但是Re#似乎無法解決表達式而沒有提供任何建議。查看代碼和錯誤的附件。Re中未解析的lambda表達式#

任何優惠?

alt text

回答

1

你的代碼沒問題。這是Resharper中的一個錯誤,現在已在5.1版中修復。

在所有地方都有相同的警告(在我關閉Re#直到我得到5.1更新的情況下)。我們也是一個Silverlight 4應用程序。

現在,#2010對VS 2010的表現要好得多。智能感知自動填充的衝突也消失了。

1

我沒有使用過ReSharper的,所以我可以離開這裏的標記,但調用接受委託或行動;一個lambda表達式可以轉換爲其中的任一種(如this answer from Jon Skeet中所述)。也許Resharper不知道其中應該投到。

如果將其更改爲

Dispatcher.BeginInvoke(new Action(() => // ... 

錯誤將最有可能消失。

+0

不錯的嘗試,但動作需要一個類型參數,如動作。還有什麼? – danijels 2010-10-04 10:56:58

+0

@danijels:它只需要.NET 2.0中的參數; 3.5+包括沒有參數的[Action](http://msdn.microsoft.com/en-us/library/system.action.aspx)類型。您可以使用[LinqBridge](http://code.google.com/p/linqbridge/)獲取純動作,或者您可以使用[從Marc Gravell的此答案]中描述的MethodInvoker(http:// stackoverflow .COM /問題/ 253138 /匿名方法中,調用呼叫/ 253150#253150)。 – 2010-10-04 11:01:58

+0

我仍然無法讓它滿足Re#。你的建議會像原始代碼一樣編譯,但Re#仍然彈出要求我包含類型參數。我還應該提到這是VS2010和Silverlight 4項目。 – danijels 2010-10-04 11:18:00