2010-12-13 5 views

Antwort

2

Es ruft eine andere Konstruktor auf der gleichen Art, in der weapon vorbei, die an dieses Konstruktor übergeben wurde, und ein neues Communicate Objekt. Ich nehme an, es ist auch so etwas wie:

// might actually be private 
public Butler(IWeapon weapon, Communicate communicate) {...} 

Dieser Ansatz ist nützlich, indem Sie mehrere Konstrukteure haben, aber nur setzen Sie den Code in den komplexesten ein. Alle anderen Konstruktoren übergeben nur die Argumente (oder Standardwerte, falls erforderlich) an den ausgewählten Konstruktor.

wird der verkettete Konstruktor vor den Körper des Konstruktor aufgerufen, der die : this(...)

+0

Ist das auch Vererbung? Es sieht so aus, als würde man einen Konstruktor "erben". –

+0

@Camilo nein; es ruft nur eine Methode im * current * -Typ auf; Vererbung überhaupt vermerken –

1

Er ruft einen Konstruktor in der gleichen Klasse hat aber mit unterschiedlichen Parametern, zum Beispiel:

public class Test 
{ 

    public Test() : this("Richard") 
    { 

    } 

    public Test(string name) 
    { 

    } 

} 
+0

In einem Fall wie diesem wäre ein optionaler Parameter der beste, oder? –

0

Es bedeutet, Butler erweitert eine Instanz der aktuellen Klasse, in der das Waffenobjekt als Argument übergeben wurde, und eine neue Instanz des Communicate-Objekts wird an den Klassenkonstruktor übergeben.

0

ruft es einen anderen Konstruktor mit der Signatur Butler (IWeapon, ICommunicate).

Verwandte Themen