Как реализовать события через интерфейс в C #?

Класс org.apache.hadoop.hbase.util.Bytes имеет кучу удобных методов преобразования byte [], но вы можете не захотеть добавить всю банку HBase в свой проект именно для этой цели. Удивительно, что не только такой метод пропускает AFAIK из JDK, но также и из очевидных libs, таких как commons io.

13
задан Spoike 21 January 2009 в 23:52
поделиться

1 ответ

Вместо (IReporting) obj. XXX необходимо записать ((IReporting) obj).XXX

public interface IFoo
{
    event EventHandler Boo;
}

class Foo : IFoo
{
    public event EventHandler Boo;
    public void RaiseBoo()
    {
        if (Boo != null)
            Boo(this, EventArgs.Empty);
    }
}

...

private void TestClass_Boo(object sender, EventArgs e)
{
    throw new NotImplementedException();
}

    ...

   object o = new Foo();
   ((IFoo)o).Boo += TestClass_Boo;
   ((Foo)o).RaiseBoo();

Относительно сменной платформы смотрит на существующие решения с хорошей архитектурой, например MEF

31
ответ дан aku 21 January 2009 в 23:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: