2016-03-31 12 views
0

Es gibt eine Verwirrung in meinen Gedanken über den Konstruktor der Klasse. Wie immer habe ich versucht, diese zu finden, aber nicht findet keine Antwort relevant sind meine Verwirrung ..Was passiert, wenn eine neue Instanz eines Objekts aufgerufen wird?

Angenommen, ich habe eine Klasse

public class mySampleClass 
{ 
    public mySampleClass() 
    { 
     // This is the constructor method. 
    } 
    // rest of the class members goes here. 
} 

, die viele Eigenschaften haben, wenn ich diese Klasse zu initialisieren, was passieren? Ich meine zu sagen, ob nur Konstruktor aufgerufen wird? oder etwas anderes?

Was ist mit Rest der Eigenschaften? Ich stelle diese dumme Frage wegen meines WCF-Dienstes, der viele Methoden enthält, in jeder Methode, die ich dieselbe Klasse initialisiere, wenn ich ein Objekt global mache, stürzt es irgendwo ab.

Meine andere Frage ist, wie viel Zeit dauert es, neue Instanz des Konstruktors zu initialisieren? abhängig von allen Codes? oder ob Konstruktorkörper?

Bitte mit einigen Beispiel erarbeiten. mit zwei Konstruktoren oder vielen.

UPDATE:

Es gibt einige Verwirrung in Bezug auf diese Frage ist, ich habe wie WCF-Dienste ein Szenario einfach teilen, aber ich habe alle über Konstruktorinitialisierung Zeit bekannt ist, ob es auf Konstruktor abhängt? oder das gesamte Objekt (enthält andere Methodeneigenschaften).

In einfachen Worten

ich Konstruktor Verhalten wissen wollen, wenn es initilize ist, ob es auf Eigenschaften, Verfahren etc. abhängig ist?

+0

Da die Verwirrung damit begann, wie WCF standardmäßig funktioniert, glaube ich, dass die andere Antwort ausreichen sollte, um herauszufinden, was hinter den Kulissen vor sich geht. –

+5

das Duplikat ist offensichtlich falsch! Yeah der OP erwähnte WCF aber wirklich? – Carsten

+0

@Carsten Ich würde es beantworten, bis ich erkannte, dass das Problem mit dem Verständnis zustandsloser WCF-Dienste ist ... –

Antwort

0

Konstruktor wird nur einmal ausgeführt, und zwar wenn Sie Ihre Klasse in anderen Klassen oder Methoden oder sogar in Ihrem Dienst instanziieren.

ex.

mySampleClass msc = new mySampleClass(); 

Eigenschaften und Methoden innerhalb der Klasse wird nicht betroffen „es sei denn“ Sie so etwas wie msc.PropertyName="somethingelse"; oder msc.MethodName(); tun.

Verwandte Themen