代码之家  ›  专栏  ›  技术社区  ›  Patrick Desjardins

在许多类中实现新接口成员的最快方法?

  •  2
  • Patrick Desjardins  · 技术社区  · 16 年前

    您知道一种从接口到类实现方法的快速方法吗?如果是,你怎么做?

    情境:我有一个超过15个具体类使用的接口。我添加了一个新方法,需要在所有具体类中实现这个新方法。

    更新

    我的所有具体类都实现了接口和所有方法。稍后,我在接口中添加了一个新方法。为了能够编译,我需要在所有类中实现新方法。我不想在每个类上逐个执行该方法。是否有一种方法,比如界面中的“右键单击新方法”,将进入所有具体类,并自动进入新方法。这样我就不用开所有的课了?

    4 回复  |  直到 7 年前
        1
  •  5
  •   Jason Plank Maksim Kondratyuk    14 年前

    由于您提到已经安装了Resharper,下面介绍一些快速实现此功能的方法:

    • 使用“查找高级用法”与 选中“实现”复选框
    • 对于每个类,使用快速动作 “实现成员”

    您也可以使用“ solution wide analysis “resharper的特性-它将很快找到所有没有实现这个新方法的类。

    编辑:

    最后我发现了 真的? 快速方式:

    • 将方法签名保存在剪贴板中。
    • 将光标放在ifoo中的boo上 接口(注意代码错误-空代码块,这是有意的)。
    • 右键单击并选择“重构”->“向下推成员”
    • 在显示的对话框中选择所需的类,然后单击下一步。
    • 从剪贴板还原方法签名
    internal interface IFoo
    {
        void Boo()
        {
        }
    }
    
    class Boo:IFoo
    {
    }
    
    class Foo: IFoo
    {
    }
    
        2
  •  5
  •   Joel Coehoorn    16 年前

    提供一个带有默认实现的抽象基类,然后让所有具体类继承该抽象类。

        3
  •  0
  •   Igor Zelaya    16 年前

    对,

    在15个类中的每个类中嵌入接口类。例子:

    public class MyClass:MyInteface{
    
    }
    

    然后,将鼠标悬停在接口名称的第一个字母上,并从下拉列表中选择“显式实现接口”。

    我假设您使用的是Visual Studio。

        4
  •  0
  •   brroshan    7 年前

    使用Resharper,您可以选择新的接口成员(将光标放在上面),然后按 中高音 + 进入 或者点击锤子图标,然后

    1. 在派生类中实现
    2. 在所有上述类型中实现成员