Umfassendes Verständnis offener und geschlossen konstruierter generischer Typen
Generika in Programmiersprachen ermöglichen die Definition von Typen, die zur Laufzeit verschiedene Datentypen verarbeiten können. Generische Typen gibt es in zwei Formen: offene konstruierte Typen und geschlossene konstruierte Typen. Ziel dieses Artikels ist es, die Unterschiede zwischen diesen beiden Typen zu verdeutlichen.
Geschlossene Bauart:
Ein geschlossen konstruierter Typ ist ein generischer Typ, bei dem alle Typparameter als konkrete Typen angegeben sind. Mit anderen Worten: Ein geschlossener konstruierter Typ ist ein vollständig instanziierter generischer Typ. Zum Beispiel:
<code>Dictionary<string, int> myDictionary = new Dictionary<string, int>();</code>
In diesem Beispiel ist Dictionary<string, int>
ein geschlossen konstruierter Typ. Dictionary
ist ein generischer Typ mit zwei Typparametern: TKey
und TValue
. In diesem Fall wurde jedoch TKey
als string
und TValue
als int
bezeichnet.
Offene Bauart:
Ein offen konstruierter Typ ist ein generischer Typ, für den ein oder mehrere Typparameter nicht angegeben wurden. Mit anderen Worten: Ein offen konstruierter Typ ist ein teilweise instanziierter generischer Typ. Zum Beispiel:
<code>Dictionary<TKey, TValue> myDictionary2 = new Dictionary<TKey, TValue>();</code>
In diesem Beispiel ist Dictionary<TKey, TValue>
ein offen konstruierter Typ. Dictionary
ist ein generischer Typ mit zwei Typparametern, aber TKey
und TValue
sind nicht spezifiziert. Daher kann Dictionary<TKey, TValue>
jede Art von TKey
und TValue
akzeptieren.
Wichtigkeit:
Der Unterschied zwischen offenen und geschlossenen Bauarten mag technisch erscheinen, kann aber in bestimmten Situationen, wie zum Beispiel den folgenden, wichtig sein:
In der Praxis ist die Unterscheidung zwischen offenen und geschlossenen konstruierten Typen jedoch normalerweise nicht kritisch, und die meisten Programmierer können effektiv arbeiten, ohne sich explizit darum zu kümmern.
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen offenen und geschlossenen generischen Typen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!