none
求助:如何自定义事件(C#) RRS feed

  • 问题

  • 在c#中实现一个类,自定义事件:

    (1)定义委托

     

    public delegate FlagEventHandler(Object sender,FlagEventArg e);

     

    (2)定义类

     

    class Flag

    {

    public List<bool> flag;

    public event FlagEventArg Change;

    }

     

    (3) 定义事件参数

     

    class FlagEventArg

    {

       int index;//用于标识修改了哪一个数据

    }

     

    我的想法是,在程序修改flag数组时,触发Change事件,传入的FlagEventArg指示修改了flag中的哪一个数据。但是怎样生成FlagEventArg实例?如,在另一个程序中,写了:

         flagIdea=true;

    这时怎样生成一个FlagEventArg对象,让他的index属性为i?

    Thank you!

    2008年3月5日 8:47

答案

  • 按照你的要求,你应该把

    public List<bool> flag;

    变成

    private List<bool> flag;

    然后在你的Flag中完全封装对flag的所有需要的操作,比如Add、Remove、SetValue等,这样你就有十足的机会和灵活性来引发你自己的事件。

    我暂时没有想到其他更好的办法。

    至于怎么自定义事件,你google一下,很多例子的。

    2008年3月6日 3:28