下面的代码循环访问表单上的所有复选框,反转每个复选框的 .Checked 状态。是否可以避免使用 LINQ 来执行此操作?public void TickChecker() { foreach (CheckBox con in Controls.OfType<CheckBox>()) { con.Checked ^= true; } }
2 回答
潇潇雨雨
TA贡献1833条经验 获得超4个赞
C# 长期以来支持两个运算符来检查对象的类型:is 和 as。C# 7 添加了一种使用 is 运算符的新方法,该方法将 is 与基本模式相结合,为 as 提供替代方案。所以你可以在你的foreach:
foreach (Control con in Controls)
{
if (con is CheckBox checkBox)
{
checkBox.Checked ^= true;
}
}
MMMHUHU
TA贡献1834条经验 获得超8个赞
那这个呢:
public void TickChecker()
{
foreach (var con in Controls)
{
CheckBox checkBox = con as CheckBox;
if (null != checkBox)
{
checkBox.Checked ^= true;
}
}
}
- 2 回答
- 0 关注
- 82 浏览
添加回答
举报
0/150
提交
取消