相关疑难解决方法(0)

是否在"null"引用(即没有订阅者的事件)上调用扩展方法?

邪恶还是不邪恶?

public static void Raise(this EventHandler handler, object sender, EventArgs args)
{
   if (handler != null)
   {
      handler(sender, args);
   }
}

// Usage:
MyButtonClicked.Raise(this, EventArgs.Empty);

// This works too! Evil?
EventHandler handler = null;
handler.Raise(this, EVentArgs.Empty);
Run Code Online (Sandbox Code Playgroud)

请注意,由于扩展方法的性质,如果MyButtonClicked为null,MyButtonClicked.Raise将不会抛出NullReferenceException.(例如,没有MyButtonClicked事件的监听器).

邪恶与否?

c# events extension-methods

59
推荐指数
5
解决办法
3106
查看次数

标签 统计

c# ×1

events ×1

extension-methods ×1