使用VS2010和ReSharper 5
我有一个返回System.Action的方法
private Action ExtractFile()
{
return delegate
{
MessageBox.Show("Test");
};
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,ReSharper倾向于向我展示一个修正方法,即应该将方法的返回类型映射到System.Action<T>其变体之一.它似乎无法识别非通用版本!VS遵守并且不抱怨这个!
当我将鼠标悬停在红色卷曲线上时,显示的工具提示显示
类型参数数量不正确.
候选人是:void System.Action(T)
void System.Action(T1,T2)
......并且列表一直持续到T1-T16
有任何想法吗?
在我看来,您需要将 ReSharper 更新到最新版本,即版本 5.1。如果您有 ReSharper 未加载的项目(即,检查排除的项目列表),那么即使您的代码合法并引用了这些项目,它也会将它们标记为未知。
您可以尝试清除缓存,或者重置默认设置。
您的屏幕截图没有在“委托”下显示卷线,但使用默认设置,它应该建议您按如下方式重写代码(但这不一定更好):
private Action ExtractFile()
{
return () => MessageBox.Show("Test");
}
Run Code Online (Sandbox Code Playgroud)
如果全部失败,请单击左侧的小灯泡(或按 Alt+Enter)。选择“...的检查选项”并更改严重性或选择忽略。
| 归档时间: |
|
| 查看次数: |
441 次 |
| 最近记录: |