Discard all parameters of method (Remove unused parameter 'sender' and 'args')

Viewed 639

The situation

When assigning a Click event to a button, I get a premade eventhandler which specifies an object sender and RoutedEventArgs args.

Now for my implementation of this eventhandler I don't use sender and args, and therefore I get a message saying that I should remove the parameters.

I am aware of the discard (_) operator in C#, however using this allows me to only discard one of the parameters (if I use _ again for args I get an error saying that I already have a parameter called _).

I have searched over the internet but there are only examples of discarding out variables, using discard in lambda expressions, etc. but nothing about this.

For example I want to convert something like this:

private void Button_Click(object sender, RoutedEventArgs args)
{
    DoSomethingThatDoesNotUseSenderAndArgs();
}

to this:

private void Button_CLick(object _, RoutedEventArgs _)
{
    DoSomethingThatDoesNotUseSenderAndArgs();
}

My question

Should I just ignore this message? Or suppress it since there does not seem to be a way of solving it without using the parameters in the implementation? Or is there actually a way of discarding both parameters and thus remove this annoying message?

1 Answers

I found an answer to my question by accident:

Whereas

private void Button_CLick(object _, RoutedEventArgs _) { }

will give an error on the second underscore,

private void Button_CLick(object _, RoutedEventArgs __) { }

will not.

Related