【问题标题】:C# how to subscribe to an event that uses a delegate?C#如何订阅使用委托的事件?
【发布时间】:2018-08-12 05:32:24
【问题描述】:

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

 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... 有人可以告诉我处理事件的正确语法吗? 谢谢

【问题讨论】:

    标签: c# events delegates


    【解决方案1】:

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

    _client.FFTAvailable += _FTTAvailable;
    

    然后

    private void _FFTAvailable(object sender, ByteSamplesEventArgs e)
    {
    
    }
    

    这行得通。谢谢您的帮助。我被抛弃了声明事件处理程序。

    【讨论】:

    • 好吧,因为我没有注意到我的答案中 += 行的变化,所以我已经删除了它。自从您设法解决了问题后,为您点赞。
    【解决方案2】:

    您需要分享代表SamplesAvailableDelegate&lt;ByteSamplesEventArgs&gt;的签名。

    _fftAvailable 期望返回一些数据类型,但它返回的是 void。

    【讨论】:

    • 你能说明这两个语句的语法是什么吗?
    猜你喜欢
    • 2019-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-06
    • 1970-01-01
    • 2021-10-06
    • 2014-03-16
    • 1970-01-01
    相关资源
    最近更新 更多