In a C# event handler, why must the “sender” parameter be an object?

后端 未结 12 804
半阙折子戏
半阙折子戏 2020-12-02 08:19

According to Microsoft event naming guidelines, the sender parameter in a C# event handler \"is always of type object, even if it is possible to use a

12条回答
  •  孤城傲影
    2020-12-02 09:01

    I use the following delegate when I would prefer a strongly-typed sender.

    /// 
    /// Delegate used to handle events with a strongly-typed sender.
    /// 
    /// The type of the sender.
    /// The type of the event arguments.
    /// The control where the event originated.
    /// Any event arguments.
    public delegate void EventHandler(TSender sender, TArgs e) where TArgs : EventArgs;
    

    This can be used in the following manner:

    public event EventHandler CustomEvent;
    

提交回复
热议问题