Entwickler-Ecke

Basistechnologien - Objekt mit Klassenbezogener Methode erzeugen


paddy14 - So 20.05.12 21:46
Titel: Objekt mit Klassenbezogener Methode erzeugen
Guten Abend,

ich habe ein kleines Verstaendnisproblem.
Ich versuche mal so gut wie es geht den Sacheverhalt zu erklaeren.

Normalerweise erzeuge ich ja ein Objekt so:

Bsp1.:

C#-Quelltext
1:
Klassenname Objektname = new Klassenname()                    

fuer den Standartkonstruktor. Es koennen wenn vohanden, natuerlich auch noch Parameter uebergeben werden.

Bsp2.:
An dem Beispiel der "Process" Klassse kann ein Objekt aber auch durch:

C#-Quelltext
1:
Process myprocess = Process.GetProcessById(Int32)                    

erzeugt werden.

Meine Frage ist jetzt:
Wenn ich z.B. eine Klasse Kreis habe, dann habe ich bisher ein Objekt wie in Bsp1.: erzeugt.
Wenn ich dies allerdingt mit, "wie in Bsp2.:", einer Klassenbezogenen Methode machen will, sprich:


C#-Quelltext
1:
Kreis meinkreis = Kreis.HoleKreisById(Int32)                    

aus einer Datenbank z.B.

Ich Frage mich wie diese Methode aussehen muesste, um so ein Objekt zu erzeugen???

Ich hoffe ich habe mich ein kleines bisschen klar ausgedrueckt ;)


Ralf Jansen - So 20.05.12 22:27

Die Methode sollt einfach statisch sein dann kannst du die einfach aufrufen und irgendwas darin veranstalten. Bei dem was du darin veranstalten willst kann ich nicht helfen du hast schon nach einem Lösungskonzept (Faktorymethode) gefragt aber das eigentliche Problem das du damit lösen willst verschwiegen. Warum reicht bei dir kein einfacher Konstruktor mit Parametern?


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
public class Kreis
{
    private Int32 _value;

    private Kreis() {};

    private Kreis(Int32 value)
    { 
         _value = value;
    }

    public static Kreis HoleKreisById(Int32 value)
    {
        return new Kreis(value);
    }
}


paddy14 - So 20.05.12 22:39

Danke dir!!!
Das hat genau mein Problem geloest.
Ich wollte nur wissen wie ich mit einer Statischen Methode mir ein Objekt erzeugen kann.
Klar kann ich das auch einfach ueber den Stadartkontruktor machen, wollte halt nur wissen wie es mit der Methode geht ;)
Des Wissenshalber ;)