问题描述
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
变量)
请注意,这并不是真正意义上的优化,而是关于代码更清晰,更简单。 可能稍快一些,但意义不大。