C#如何订阅使用委托的事件?

时间:2018-08-12 05:32:25

标签: c# events delegates

我正在编写一个使用第三方类的应用程序。此类定义了以下事件:

 public event SamplesAvailableDelegate<ByteSamplesEventArgs> FFTAvailable;

,并且此事件在此类中引发。我想在Windows窗体应用程序中订阅此事件。

我尝试了以下方法:

public partial class Form1 : Form
{
    Client _client;

    public Form1()
    {
        InitializeComponent();
        _client = new Client();
        _client.FFTAvailable += _fftAvailable(object sender, ByteSamplesEventArgs e);
    }

    private void _fftAvailable(object sender, EventArgs e)
    {
        //do something here
    }
}

当我这样做时,我得到一个错误“无法隐式转换void类型... 有人可以告诉我处理事件的正确语法吗? 谢谢

2 个答案:

答案 0 :(得分:2)

好的,解决方案很简单。我需要以下条件:

_client.FFTAvailable += _FTTAvailable;

然后

private void _FFTAvailable(object sender, ByteSamplesEventArgs e)
{

}

这有效。谢谢您的帮助。我没有宣布事件处理程序。

答案 1 :(得分:0)

您需要共享委托人SamplesAvailableDelegate<ByteSamplesEventArgs>的签名。

_fftAvailable期望返回某些数据类型,但是返回空值。