【问题标题】:Unresolved lambda expression in Re#Re# 中未解析的 lambda 表达式
【发布时间】:2011-04-20 17:57:10
【问题描述】:

我无法弄清楚 Re# 在用一段代码抱怨什么。一切都可以正常编译并且可以正常工作,但是 Re# 似乎无法在不提供任何建议的情况下解析表达式。查看附件中的代码和错误。

有什么优惠吗?

【问题讨论】:

    标签: c# visual-studio-2010 silverlight-4.0 lambda resharper


    【解决方案1】:

    您的代码很好。这是 Resharper 中的一个错误,现已在 5.1 版中修复。

    到处都有同样的警告(在我得到 5.1 更新之前我关闭了 Re#)。我们的也是 Silverlight 4 应用程序。

    Re# 5.1 现在在 VS 2010 中表现得更好。与智能感知自动完成的冲突也消失了。

    【讨论】:

      【解决方案2】:

      我没有使用过 Resharper,所以我在这里可能不合适,但是 Invoke 接受委托或操作;可以将 lambda 表达式转换为其中任何一个(如 this answer from Jon Skeet 中所述)。也许 Resharper 不知道应该将其投射到哪些

      如果你改成

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

      错误很可能会消失。

      【讨论】:

      • 不错的尝试,但 Action 需要像 Action 这样的类型参数。这里的 T 是什么?
      • @danijels:.NET 2.0 中只需要一个参数; 3.5+ 包括不带参数的Action 类型。您可以使用LinqBridge 获取普通的Action,也可以使用this answer from Marc Gravell 中描述的MethodInvoker。
      • 我仍然无法满足 Re#。您的建议将与原始代码一样编译,但仍会弹出 Re#,要求我包含类型参数。我还应该提到这是 VS2010 和 Silverlight 4 项目。
      • 这是有根据的猜测。我将把答案标记为 CW,因为它仍然与讨论相关,但它不是问题的 答案。
      猜你喜欢
      • 2010-09-19
      • 2020-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多