gpt4 book ai didi

c# - 正确使用 EventArgs

转载 作者:行者123 更新时间:2023-11-30 12:26:21 24 4
gpt4 key购买 nike

我有一个非常基本的事件:

public event EventHandler OnAborted;

我需要做的就是调用这个事件,我什至不需要提供任何参数,所以没什么特别的。我对 EventArgs 参数的正确用法感到困惑。

我可以使用:

if (OnAborted != null)
OnAborted(this, EventArgs.Empty);

或者我什至可以使用:

if (OnAborted != null)
OnAborted(this, new EventArgs());

在这两种情况下,EventArgs 似乎都没什么用,我什至无法提供任何参数(不是我需要的,但这不是重点)。

EventArgs 的正确用法是什么?我应该创建一个继承 EventArgs 的自定义类吗?

最佳答案

使用 EventArgs.Empty 不会创建新对象并将其分配到堆上。此外,EventArgs.EmptyNull Object Pattern 的一个实例.拥有一个表示“无值”的对象,以避免在使用它时检查 null。

要添加更多关于何时应该使用 EventArgs 或适当的类,这里有一些关于事件设计的 MSDN 指南:

Consider using a derived class of System.EventArgs as the event argument, unless you are absolutely sure the event will never need to carry any data to the event-handling method, in which case you can use the System.EventArgs type directly.

If you define an event that takes an EventArgs instance instead of a derived class that you define, you cannot add data to the event in later versions. For that reason, it is preferable to create an empty derived class of EventArgs. This allows you add data to the event in later versions without introducing breaking changes.

关于c# - 正确使用 EventArgs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29073374/

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