gpt4 book ai didi

c# - 是否可以在不创建派生类的情况下将数据传递给 EventArgs?

转载 作者:可可西里 更新时间:2023-11-01 08:18:37 26 4
gpt4 key购买 nike

我有点懵。我知道我可以创建从 EventArgs 派生的类以获得自定义事件数据。但是我能以某种方式使用基类 EventArgs 吗?就像鼠标按钮点击一样,在订阅者方法中,总是有“EventArgs e”参数。我能否以某种方式创建以这种方式传递数据的方法,我的意思是它们将在基本 Eventargs 中传递?

最佳答案

您可以通过通用类型方法使用 EventArgs 类。在此示例中,我将使用 Rect 类作为返回类型:

public EventHandler<Rect> SizeRectChanged;

引发事件:

if(SizeRectChanged != null){
Rect r = new Rect(0,0,0,0);
SizeRectChanged(this,r);
}

监听事件:

anyElement.SizeRectChanged += OnSizeRectChanged;

public void OnSizeRectChanged(object sender, Rect e){
//TODO abything using the Rect class
e.Left = e.Top = e.Width = e.Height = 50;
}

因此,不需要创建新的事件类或委托(delegate),只需创建一个传递特定类型 T 的 EventHandler。

关于c# - 是否可以在不创建派生类的情况下将数据传递给 EventArgs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1942621/

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