假设我有以下代码需要移动到另一个文件/类:
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扩展可以帮助添加扩展方法的using语句,如上所述?这有助于分配重构代码。
答案 0 :(得分:0)
我找到了一个免费的解决方案: 下载并安装DevExpress CodeRush Express,然后下载并安装CR_ExtensionMethodsHelper community plugin。
您还可以尝试以下商业产品(非免费):