如何在C#中实现事件处理程序接口?

时间:2016-05-21 18:41:36

标签: c# interface event-handling

我有一个名为IVideoPreparedListener的界面,如下所示:

public interface IVideoPreparedListener
{
    void onVideoPrepared(Video video);
}

我在另一个类中有一个偶数监听器方法,如下所示:

public void setOnVideoPreparedListener(IVideoPreparedListener iVideoPreparedListener)
    {
        this.iVideoPreparedListener = iVideoPreparedListener;
    }

我尝试通过执行以下方式调用此方法:

 videoPlayer2.setOnVideoPreparedListener(?)

我调用此方法的类实现了事件处理程序接口。我不确定在setOnVideoPreparedListener方法中应该传递什么参数,因此调用接口方法onVideoPrepared。 通常在java中我会做这样的事情:

ideoPlayer2.setOnVideoPreparedListener(new IVideoPreparedListener() {
                @Override
                public void onVideoPrepared(Video mVideo) {

                    //Pause current playing video if any
                    if(video.getIndexPosition() == mVideo.getIndexPosition())
                    {
                        if(currentPlayingVideo!=null)
                        {
                            VideoPlayer videoPlayer1 = videos.get(currentPlayingVideo.getIndexPosition());
                            videoPlayer1.pausePlay();
                        }
                        videoPlayer2.mp.start();
                        currentPlayingVideo = mVideo;
                    }


                }
            });

知道如何用C#做类似的事情吗?

1 个答案:

答案 0 :(得分:1)

你说你所在的类实现了事件处理程序接口。如果是,则只需致电ideoPlayer2.setOnVideoPreparedListener(this);