How do I create a new delegate type based on an existing one, in C#?

前端 未结 4 1079
别那么骄傲
别那么骄傲 2021-02-12 21:23

Is there any way that I can create a new delegate type based on an existing one? In my case, I\'d like to create a delegate MyMouseEventDelegate which would have th

4条回答
  •  情深已故
    2021-02-12 22:17

    Well, it's as simple as copying the delegate declaration from the original. There's nothing in C# to do this automatically, but I can't see it's much of a burden:

    public delegate void MyLeftClickHandler(object sender, MouseEventArgs e);
    public delegate void MyRightClickHandler(object sender, MouseEventArgs e);
    

    It's not like MouseEventHandler is going to change any time soon...

    Have you actually been bitten by bugs due to using the wrong delegates in the wrong places though? I can't remember ever having found this a problem myself, and it seems to me you're introducing more work (and an unfamiliar set of delegates for other developers) - are you sure it's worth it?

提交回复
热议问题