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