2016-08-03 5 views
0

У меня есть программа с 2 классами, и я пытаюсь создать метод, который форматирует некоторые объекты System.Windows.Forms другого класса.C# Создать общий параметр метода

Это мой код:

internal void Format(Panel component, int width, int height, int x, int y) 
    { 
     component.Width = width; 
     component.Height = height; 
     component.Left = x; 
     component.Top = y; 
    } 

    internal void Format(GroupBox component, int width, int height, int x, int y) 
    { 
     component.Width = width; 
     component.Height = height; 
     component.Left = x; 
     component.Top = y; 
    } 

    internal void Format(Button component, int width, int height, int x, int y) 
    { 
     component.Width = width; 
     component.Height = height; 
     component.Left = x; 
     component.Top = y; 
    } 

я могу создать те же методы (с различным параметром объекта) для всех необходимых типов объектов, но, возможно, есть способ, чтобы создать его с помощью только одного метода с ' общий/общий/общий "для всех типов объектов.

+1

Все они наследуют от класса 'Control', вы могли бы использовать этот базовый класс вместо этого, я бы рекомендовал проверить и либо бросать исключение, если объект не один из тех, которые вы поддерживаете или возвращают ложные или что-то , – Jite

+0

Он работает! А также спасибо за совет, я буду! – Mishaka

+0

Нет проблем. Поскольку @Ephraim опубликовал ответ об этом, id рекомендует отмечать это как правильный ответ. :) – Jite

ответ

1

Попробуйте использовать Control как тип данных параметров, поскольку все элементы управления наследуются от этого класса.

internal void Format(Control component, int width, int height, int x, int y) 
{ 
    component.Width = width; 
    component.Height = height; 
    component.Left = x; 
    component.Top = y; 
} 
+0

Спасибо, что это работает! – Mishaka

Смежные вопросы