使用 VS2010 和 ReSharper 5
我有一个返回 System.Action 的方法
private Action ExtractFile()
{
return delegate
{
MessageBox.Show("Test");
};
}
出于某种原因,ReSharper 倾向于向我展示方法的返回类型应映射到 System.Action<T>
的更正。或其变体之一。非通用版本好像不识别! VS 遵守并且不提示这个!
当我将鼠标悬停在红色 curl 线上时,显示的工具提示显示为
Incorrect number of type parameters.
Candidates are: void System.Action(T)
void System.Action(T1, T2) ...
... and the list continues until T1-T16
有什么想法吗?
最佳答案
在我看来,您需要将 ReSharper 更新到最新版本,即 5.1 版。如果您有 ReSharper 未加载的项目(即,检查您的排除项目列表),那么它会将它们标记为未知,即使您的代码是合法的并且引用了这些项目。
您可以尝试清除缓存,或重置默认设置。
您的屏幕截图在“委托(delegate)”下没有显示 curl 线,但使用默认设置应该建议您按如下方式重写代码(但这不一定更好):
private Action ExtractFile()
{
return () => MessageBox.Show("Test");
}
如果全部失败,请单击左侧的小灯泡(或按 Alt+Enter)。选择“...的检查选项”并更改严重性或选择忽略。
关于c# - ReSharper 总是要求将 System.Action 更改为 System.Action<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5272735/