使用"添加"语句用于扩展方法
本文关键字:quot 扩展 方法 用于 添加 使用 语句 | 更新日期: 2023-09-27 18:05:06
假设我有以下代码需要移动到另一个文件/类:
namespace MyNamespace
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
class Class1
{
public void SomeMethod()
{
IEnumerable<int> l = new List<int>();
if (l.Count() == 0)
{
//...
}
}
}
}
如果我将SomeMethod
移动到另一个类(在另一个文件中),没有(例如)using System.Linq
声明,l.Count()
语句将无法编译,给出非常明显的消息:
'System.Collections.Generic.IEnumerable<int>' does not contain a definition for 'Count' and no extension method 'Count' accepting a first argument of type 'System.Collections.Generic.IEnumerable<int>' could be found (are you missing a using directive or an assembly reference?)
如果新的类/文件没有using System.Collections.Generic
声明,并且您将光标放在IEnumerable<int>
上,您将获得一个SmartTag,它将建议可能的使用声明。如果您将光标放在Count()
扩展调用上,则不会得到SmartTag来建议using System.Linq
声明。
是否有可能有一个IDE扩展,可以帮助添加一个使用语句的扩展方法,如上所述?这有助于分配重构代码。
我找到了一个免费的解决方案:下载并安装DevExpress CodeRush Express,然后下载并安装CR_ExtensionMethodsHelper社区插件。
您也可以尝试以下商业产品(非免费):
- DevExpress CodeRush(与CR_ExtensionMethodsHelper社区插件;虽然有一个请求等待有这个插件原生支持)
- ReSharper(我自己不使用这个,但其他人建议)