300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > switch case 遇到判断type分支的写法

switch case 遇到判断type分支的写法

时间:2022-10-10 15:31:17

相关推荐

switch case 遇到判断type分支的写法

一叶障目,没有接触到的知识点真是太多了......

最近项目里需要用到一个小工具,就用winform写了一个出来,然后需要一个功能就是清空控件内容,我这个工具就用到了textbox和combobox,就拿这两个做示例了。

对于清空winform控件,网上搜索答案基本都是需要转化成string然后比较name的硬编码,参考:

/questions/7252186/switch-case-on-type-c-sharp

/lonelyxmas/p/5472462.html

当我这么写了之后,就像下面这样,被review代码的资深嫌弃了......

private void ClearCntrValue(Control parContainer){for (int index = 0; index < parContainer.Controls.Count; index++){// 如果是容器类控件,递归调用自己if (parContainer.Controls[index].HasChildren){ClearCntrValue(parContainer.Controls[index]);}else{switch (parContainer.Controls[index].GetType().Name){case "TextBox":parContainer.Controls[index].Text = "";break;case "RadioButton":((RadioButton)(parContainer.Controls[index])).Checked = false;break;case "CheckBox":((CheckBox)(parContainer.Controls[index])).Checked = false;break;case "ComboBox":((ComboBox)(parContainer.Controls[index])).Text = "";break;}}}}

于是就学了在现在的我看起来的神操作,就像这样:

private void ClearCntrValue(Control.ControlCollection controls){foreach (Control ctr in this.Controls){switch (ctr){case TextBox text:text.Text = "";break;case ComboBox comboBox:comboBox.SelectedItem = OperateType.PleaseWait;break;}}}

参考官方文档:

/en-us/dotnet/csharp/language-reference/keywords/switch

每天进步一点点,咱不能什么都知道,但是看到了好的东西就记下来,慢慢积累就牛起来啦。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。