gpt4 book ai didi

c# - Resharper 猛拉自己的尾部;是第一次还是最后一次?

转载 作者:太空狗 更新时间:2023-10-29 21:18:27 24 4
gpt4 key购买 nike

我有一些冗长的代码:

private bool AnyUnselectedCombox()
{
bool anyUnselected = false;
foreach (Control c in this.Controls)
{
if (c is ComboBox)
{
if ((c as ComboBox).SelectedIndex == -1)
{
anyUnselected = true;
break;
}
}
}
return anyUnselected;
}

...Resharper 提出使用 LINQ 表达式进行优雅化,如下所示:

return this.Controls.OfType<ComboBox>().Any(c => (c as ComboBox).SelectedIndex == -1);

...但是随后的 Resharper 检查说它生成的代码(上图):“Type cast is redundant”(指的是“c as ComboBox”部分),因此它结束了上升为:

return this.Controls.OfType<ComboBox>().Any(c => c.SelectedIndex == -1);

Resharper 不应该生成 Resharper 批准的代码吗?还是它只是有时需要两遍才能完全“束腰”?

最佳答案

是的,有时 ReSharper 会自行纠正,需要第二次通过才能使其“恰到好处”。我一直假设它使用某些“安全模板”来进行转换,在某些情况下,安全转换的某些部分并不是真正需要的。

所有版本的代码都是正确且等效的,第一个“通过”是转换为 Linq,第二个“通过”删除了 Linq 转换添加的一些冗余代码。

关于c# - Resharper 猛拉自己的尾部;是第一次还是最后一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12609788/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com