Начиная с 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;
}
}
Здесь _
- это синтаксис для сброс , что означает, что вы неВам не нужно обращаться к значению как 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;
}
}