如何在switch case语句中检查控件类型?
Private void CheckControl(Control ctl)
{
switch (ctl) {
case TextBox: MessageBox.Show("This is My TextBox");
break;
case Label: MessageBox.Show("This is My Label");
break;
}
}
Run Code Online (Sandbox Code Playgroud)
以下是上述声明中的错误:
"文本框"是一种类型,在给定的上下文中无效
Jon*_*eet 16
从C#7开始,您可以使用类型模式:
private void CheckControl(Control ctl)
{
switch (ctl)
{
case TextBox _:
MessageBox.Show("This is My TextBox");
break;
case Label _:
MessageBox.Show("This is My Label");
break;
}
}
Run Code Online (Sandbox Code Playgroud)
以下_是discard的语法,这意味着您之后不需要以TextBox(或Label)方式访问该值.
如果您确实想要访问特定类型的成员,可以引入模式变量:
private void CheckControl(Control ctl)
{
switch (ctl)
{
case TextBox textBox:
// Use textBox for any TextBox-specific members here
MessageBox.Show("This is My TextBox");
break;
case Label label:
// Use label for any Label-specific members here
MessageBox.Show("This is My Label");
break;
}
}
Run Code Online (Sandbox Code Playgroud)