gpt4 book ai didi

c# - 从订阅事件或这个发送者触发事件?

转载 作者:太空宇宙 更新时间:2023-11-03 12:28:14 30 4
gpt4 key购买 nike

假设我有一个类(窗体/窗口),它有一个按钮。在我的类(class)中,我将按钮订阅到一个方法,并在其中抛出我自己的事件:

public delegate void MyEventHandler(object source, MyEventArgs e);
public event MyEventHandler MyEvent;
protected virtual void OnMyEvent(MyEventArgs e)
{
if (this.MyEvent != null) this.MyEvent(this, e);
}

private void Button_Click(object sender, EventArgs e)
{
this.OnMyEvent(???, ???);
}

触发事件的正确方法是什么。我应该将 this 与我自己的 EventArgs 一起使用吗?

this.OnMyEvent(this, new EventArgs());

或者我应该将我的发送者和事件参数发送到我自己的事件的订阅中吗?

this.OnMyEvent(sender, e);

什么是正确的方法。我们应该只坚持一种方法吗?微软是怎么做到的?有任何代码指南吗?

谢谢。

最佳答案

想想谁会订阅您的事件。他们需要知道它是否来自按钮吗?或者他们只需要知道它已被解雇?

就我个人而言,我更希望听众只知道事件被触发,而发送者是我的类(class),这让我可以自由地改变谁可以首先触发事件,例如按钮点击、定时器等

关于c# - 从订阅事件或这个发送者触发事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43798889/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com