Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Einführung in generische C#-Typen

Detaillierte Einführung in generische C#-Typen

黄舟
黄舟Original
2017-03-22 11:35:011442Durchsuche

In diesem Artikel werden hauptsächlich C#generische Typen vorgestellt, die sehr gut sind und einen Referenzwert haben. Freunde in Not können darauf verweisen

Der vorherige Artikel führte Sie in eine kurze Analyse von C# ein. . Typsystem (Werttyp und Referenztyp).

Lassen Sie uns über die Verwendung von Generika in C# sprechen Man fühlt sich sofort besser, natürlich nur ein bisschen, wirklich nur ein bisschen, denn es gibt später noch viel Wissen zu lernen und zu beherrschen. Schauen wir uns zunächst das nächste Beispiel für die Verwendung von Dictionary8c189faf63255a5ea96468ba21dd0564 an.

static void Main(string[] args)
{
 Dictionary<int, string> result = GetAll();
}
public static Dictionary<int, string> GetAll()
{
  var dic = new Dictionary<int, string>();
 dic.Add(1, "aaa");
 dic.Add(1, "aaa");
 dic.Add(1, "aaa");
 return dic;
}

Zwei Formen von Generika: generische Typen (Klassen, Schnittstellen , Delegaten und Strukturen) und generische Methoden wie TKey und TValue sind Typparameter und die eingehenden Int und string sind reale Typen. Es ist ersichtlich, dass die Typparameter nur Platzhalter für die realen Typen sind. Generische Typen, die keine echten Parameter für Typparameter bereitstellen, werden als unkonstruierte generische Typen bezeichnet. Wenn Typparameter angegeben werden, werden sie als konstruierte Typen bezeichnet, und Instanzen des Typs sind die von uns verwendeten Objekte. Das Beziehungsdiagramm unten.

Das Urteil über Generika bereitet uns Kopfzerbrechen. Als nächstes müssen wir es vielleicht nicht ganz klar erklären, aber versuchen Sie unser Bestes, denn das Buch weiß ich nicht. Ich verstehe nicht ganz, was Sie sagen, deshalb möchte ich es zunächst erklären. Wenn Sie sich nicht sicher sind, können Sie die Erklärung im Buch lesen. Schauen Sie sich zuerst das Bild unten an

Wenn wir uns eine solche generische Methode ansehen, müssen wir den darin enthaltenen Parametertyp bei tatsächlicher Verwendung ersetzen (wie bereits erwähnt, den Parametertyp). ist eigentlich ein Platzhalter für tatsächliche Typparameter), verwenden Sie einen String, um T zu ersetzen, verwenden Sie int, um TOutput zu ersetzen.

 public static List<int> GetAll(Converter<string, int> conv)
 {
}

Wobei Converter6d9430f5a2bd9e81315e5890ec9893b4 ein formaler Parameter ist, sollte dies jetzt der Fall sein Sie können die Funktion dieser generischen Methode kennen: Verwenden Sie eine Converter6d9430f5a2bd9e81315e5890ec9893b4-Instanz des generischen Delegaten als Parameter und geben Sie eine Liste mit Ganzzahlen zurück.

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in generische C#-Typen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn