为什么在C#中将虚拟对象传递给事件处理程序?

Roh*_*ews 1 c# events

以下是调用事件并因此通知所有客户端的函数.

public static void OnEventXYZ(XYZEventArgs e)
{
    if(EventXYZ!=null)
        EventXYZ(new object(),e);
}
Run Code Online (Sandbox Code Playgroud)

这是一个示例代码.

我想知道的是"有什么意义new object()

这是一个语法遵循或仅适用于这种情况?

Xav*_*nas 8

通常,您将作为事件处理程序的sender参数传递.

但是,在这种情况下,事件是静态的,因此您不能使用.编写该样本的人选择通过new object().我认为大多数人都会通过,null但这确实是个人偏好的问题.

  • 因为那样你就不会为每一个事件调用创建另一个新对象. (2认同)