“使用模式匹配”消息

问题描述

Visual Studio给我消息:

使用模式匹配

使用代码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是更惯用的,但是重要的部分是在user表达式中引入了is变量)

请注意,这并不是真正意义上的优化,而是关于代码更清晰,更简单。 可能稍快一些,但意义不大。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...