"Use pattern matching"留言

"Use pattern matching" Message

Visual Studio 给我消息:

Use pattern matching

使用代码 IDE0020

代码段:

private void BTclear_Clicked(object sender, RoutedEventArgs e)
{
  Button BTclear = (Button)sender;
  if (BTclear.DataContext is ObservableCollectionUser)
  {
    ObservableCollectionUser clearMe = (ObservableCollectionUser)BTclear.DataContext;
    Users.Remove(clearMe);
  }
}

if 语句带有绿色下划线。

这是什么意思,我该如何优化它?

您可以使用类型模式引入类型为 ObservableCollectionUser 的新变量,而无需强制转换:

private void BTclear_Clicked(object sender, RoutedEventArgs e)
{
    Button button = (Button) sender;
    if (button.DataContext is ObservableCollectionUser user)
    {
        Users.Remove(user);
    }
}

(我将 BTclear 重命名为 button 以在命名约定方面更加地道,但重要的部分是在 [=15= 中引入 user 变量] 表达式。)

请注意,这并不是真正关于优化 - 它是关于代码更清晰和更简单。它可能 稍微快一些,但不太可能显着。