2016-08-03 16 views
0

Ich habe Programm mit 2 Klassen und ich versuche, eine Methode zu erstellen, die einige System.Windows.Forms Objekte der anderen Klasse formatiert.C# Erstellen Sie einen allgemeinen Methodenparameter

Dies ist mein Code:

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; 
    } 

ich die gleichen Methoden (mit unterschiedlichen Objektparametern) erstellen kann für alle Objekttypen erforderlich, aber vielleicht gibt es eine Möglichkeit, es mit "mit nur ein Verfahren zu schaffen, general/overall/common 'Parameter für alle Objekttypen.

+1

Sie alle aus der 'Control' Klasse erben, können Sie diese Basisklasse verwenden, stattdessen würde ich einen Scheck empfehlen und entweder das Werfen einer Ausnahme, wenn das Objekt nicht einer von denen, die Sie unterstützen oder return false oder etwas . – Jite

+0

Es funktioniert! Und auch danke für den Rat, ich werde! – Mishaka

+0

Keine Probleme. Da @Ephraim eine Antwort darauf geschrieben hat, empfehle ich, diese als richtige Antwort zu markieren. :) – Jite

Antwort

1

Verwenden Sie Control als Parameterdatentyp, da alle Steuerelemente von dieser Klasse erben.

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

Danke, es funktioniert! – Mishaka