gpt4 book ai didi

c# - 为什么从 EventArgs 继承有用?

转载 作者:太空狗 更新时间:2023-10-30 00:01:09 25 4
gpt4 key购买 nike

我不明白为什么从 EventArgs 继承是有用的。

public class ClickedEventArgs : EventArgs
{
int x;
int y;
public ClickedEventArgs (int x, int y)
{
this.x = x;
this.y = y;
}
public int X { get { return x; } }
public int Y { get { return y; } }
}

在上面的代码中,如何使用这种继承?

我还想了解如何从 default.aspx

调用此代码块

最佳答案

您是在问为什么首先派生自 EventArgs 有用吗?我不得不说,对于 C# 1,它没有多大意义,因为委托(delegate)转换的工作方式——但从 C# 2 开始,它更合理。它允许事件处理程序注册到事件,即使它不关心事件参数的细节。

例如:

void LogEvent(object sender, EventArgs e)
{
Console.WriteLine("Event sent from " + sender);
}

...

textArea.KeyPress += LogEvent;

即使 Control.KeyPressKeyPressEventHandler 类型的事件,这仍然有效。 C# 和 .NET 不介意 LogEvent 的签名与 KeyPressEventHandler 的签名完全不匹配 - 它足够兼容。

无可否认,如果我们根本没有 EventArgs(您可以只使用 object)但给定 EventArgs,这仍然是可行的类和模式,从 EventArgs 派生您自己的事件参数是有意义的。

关于c# - 为什么从 EventArgs 继承有用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/790344/

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