使用"添加"语句用于扩展方法

本文关键字: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社区插件。

您也可以尝试以下商业产品(非免费):

  1. DevExpress CodeRush(与CR_ExtensionMethodsHelper社区插件;虽然有一个请求等待有这个插件原生支持)
  2. ReSharper(我自己不使用这个,但其他人建议)