1

私は次のインターフェースを持っています:

public interface IModuleTile
{
    void AddEvent(/*Type here*/ methodToAdd);
    void RemoveEvent(/*Type here*/ methodToRemove);
}

そして、私はこれをしたい:

public partial class TestControl : UserControl, IModuleTile
{
    public TestControl()
    {
        InitializeComponent();
    }

    public void AddEvent(/*Type here*/ eventToAdd)
    {
        ShowModule.Click += methodToAdd;
    }

    public void RemoveEvent(/*Type here*/ methodToRemove);
    {
        ShowModule.Click += methodToRemove;
    }
}

メソッドを渡すためのインターフェイス タイプとして何を設定する必要がありますか?

4

1 に答える 1

2

ここで行うことは、追加/削除メソッドを明示的に追加するのではなく、イベントをインターフェイスに直接配置することです。

public interface IModuleTile
{ 
    //change `EventHandler` to match whatever the event handler type 
    //is for the event that you're "wrapping", if needed
    event EventHandler MyClick;
}

次に、実装は次のようになります。

public partial class TestControl : UserControl, IModuleTile
{
    //You'll need to change `EventHandler` here too, if you changed it above
    public event EventHandler MyClick
    {
        add
        {
            ShowModule.Click += value;
        }
        remove
        {
            ShowModule.Click -= value;
        }
    }
}
于 2012-08-29T14:24:52.903 に答える