Autor Beitrag
paddy14
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 122



BeitragVerfasst: So 20.05.12 21:46 
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.:
ausblenden 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:
ausblenden 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:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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?

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

Für diesen Beitrag haben gedankt: paddy14
paddy14 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 122



BeitragVerfasst: 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 ;)