【发布时间】:2021-04-17 10:00:29
【问题描述】:
情况
将Click 事件分配给按钮时,我得到一个预制事件处理程序,它指定object sender 和RoutedEventArgs args。
现在我不使用sender 和args 来实现这个事件处理程序,因此我收到一条消息说我应该删除参数。
我知道 C# 中的丢弃 (_) 运算符,但是使用它只允许我丢弃其中一个参数(如果我再次使用 _ 为 args 我收到一个错误说我已经有一个名为_的参数。
我在互联网上进行了搜索,但只有丢弃 out 变量、在 lambda 表达式中使用丢弃等的示例,但对此一无所知。
例如我想转换这样的东西:
private void Button_Click(object sender, RoutedEventArgs args)
{
DoSomethingThatDoesNotUseSenderAndArgs();
}
到这里:
private void Button_CLick(object _, RoutedEventArgs _)
{
DoSomethingThatDoesNotUseSenderAndArgs();
}
我的问题
我应该忽略此消息吗?还是压制它,因为似乎没有办法在不使用实现中的参数的情况下解决它?或者实际上有没有一种方法可以丢弃这两个参数,从而消除这个烦人的消息?
【问题讨论】:
-
你能分享一个小的代码示例吗?
-
丢弃是应用程序代码中有意使用的占位符变量!在这种情况下,您尝试对参数使用丢弃,而不是变量。这种方式是不可能的
-
@RomanMarusyk 所以它只是不允许这样做吗?然后我应该压制消息吗?
-
我会压制它
-
docs.microsoft.com/en-us/dotnet/csharp/discards
If it were an actual variable, you could not discard more than one value, as the previous example did.不过,您可能可以将其作为 lambda 表达式 - docs.microsoft.com/en-us/dotnet/csharp/language-reference/… 。如果是我,我会保持原样 - 它是一个事件处理程序,人们了解它们的工作方式。