Was bedeutet dieser Doppelpunkt (:)?
Bevor die this
keyword ist ein Doppelpunkt. Kann mir jemand erklären, was der Doppelpunkt bedeutet in diesem Kontext? Ich glaube nicht, dass das inhertance.
Dank
using System;
namespace LinkedListLibrary
{
class ListNode
{
private object data;
private ListNode next;
public ListNode(object dataValue)
: this(dataValue, null)
{
}
public ListNode(object dataValue, ListNode nextNode)
{
data = dataValue;
next = nextNode;
}
public ListNode Next
{
get
{
return next;
}
set
{
next = value;
}
}
public object Data
{
get
{
return data;
}
}
}
}
InformationsquelleAutor der Frage | 2009-07-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es (zusammen mit der
this
Schlüsselwort), weist der Konstruktor ein Konstruktor innerhalb der gleichen Art vor, es selbst führt.Daher:
effektiv wird:
Beachten Sie, dass Sie
base
stattthis
zu beauftragen, den Konstruktor Aufruf eines Konstruktors der Basisklasse.InformationsquelleAutor der Antwort Jeff Yates
Ist es Konstruktor-Verkettung, so dass sich der Konstruktor mit dem nachfolgenden
: this
Anruf Kette, um das Tor entspricht der Signatur.So, in diesem Fall
ruft
mit null als zweiten Parameter, über
: this(dataValue, null)
es ist auch erwähnenswert, dass der ctor aufgerufen, über den Doppelpunkt wird ausgeführt, bevor die ctor aufgerufen wurde initialisiert das Objekt.
InformationsquelleAutor der Antwort Quintin Robinson
Es bedeutet, vor der Ausführung den Körper, führen Sie den Konstruktor mit dem Objekt und ListNode Parameter.
InformationsquelleAutor der Antwort Otávio Décio
Ruft er den anderen ListNode Konstruktor. Sie können das gleiche tun mit dem base-Schlüsselwort zum Aufruf eines Konstruktors einer Klasse sind Sie sich aus.
InformationsquelleAutor der Antwort opedog
Nein, das können Sie ausführen, die vorhandenen Konstruktor-überladung (mit zwei Parametern), vor der Ausführung der Karosserie des neuen Konstruktors.
Das ist der einfachste Weg, um die Wiederverwendung der Konstruktor-code in mehrere Konstruktor-überladungen.
InformationsquelleAutor der Antwort Groo
Konstruktor-chain-Argumente. Es gibt auch ": base()" für die Verkettung ein Aufruf an einen Konstruktor für den Basistyp.
InformationsquelleAutor der Antwort justin.m.chase
Den code sagen, den anderen Konstruktor zu führen mit den angegebenen Argumente, bevor der Körper des aktuellen Konstruktors ausgeführt wird.
InformationsquelleAutor der Antwort Jeff L