【问题标题】:Discard all parameters of method (Remove unused parameter 'sender' and 'args')丢弃方法的所有参数(删除未使用的参数'sender'和'args')
【发布时间】:2021-04-17 10:00:29
【问题描述】:

情况

Click 事件分配给按钮时,我得到一个预制事件处理程序,它指定object senderRoutedEventArgs args

现在我不使用senderargs 来实现这个事件处理程序,因此我收到一条消息说我应该删除参数。

我知道 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/… 。如果是我,我会保持原样 - 它是一个事件处理程序,人们了解它们的工作方式。

标签: c# uwp c#-7.0


【解决方案1】:

我偶然找到了我的问题的答案:

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

第二个下划线会报错,

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

不会。

【讨论】:

    猜你喜欢
    • 2022-11-28
    • 1970-01-01
    • 1970-01-01
    • 2018-08-08
    • 2015-11-11
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 2016-01-28
    相关资源
    最近更新 更多