Итак, я создал кучу пользовательских элементов управления в своем проекте, которые автоматически интегрируются в систему, которая отслеживает некоторые вещи о них. Но я не уверен, как сделать определенную часть, не выглядя очень уродливой.Пользовательские элементы управления одним и тем же способом, вызывающие их одинаково
Все элементы управления расширены из разных типов управления (панель, текстовое поле, Combobox и т. Д.), Но имеют несколько одинаковых методов.
То, что я хотел бы сделать, это избежать этого:
public void SendMyMessage(Control thisControl)
{
if(thisControl is myPanel) (thisControl as myPanel).SendMessage();
else if(thisControl is myComboBox) (thisControl as myComboBox).SendMessage();
else if(thisControl is myTextbox) (thisControl as myTextbox).SendMessage();
else if(thisControl is myLabel) (thisControl as myLabel).SendMessage();
}
И предпочел бы иметь более простой метод, который позволил бы мне назвать, что в 1 строке. (Отмечая, что функция SendMessage(), которую я вызываю, выполняет разные действия на разных элементах управления, но не требует аргументов и вызывается тем же способом).
Почему вы используете как «есть», а не «как»? Я бы сделал «is» + «cast» или просто сделал «как» один раз, а затем проверил значение null. –
Потому что эта оптимизация не имеет никакого отношения к исходному вопросу;) – Restuta
Все способы выглядят беспорядочно для меня. Я ненавижу всех их одинаково и соглашаюсь с is-as – Corylulu