Heim >Backend-Entwicklung >C++ >Wie kann ich abgeleitete Klassen aus einer generischen Klasse in C#zuverlässig identifizieren?
Vererbung in Objektorientierter Vererbung ermöglicht die Funktion der Erweiterung der übergeordneten Klasse. Bei der Verwendung generischer Klassen kann die Feststellung, ob eine Klasse von einer bestimmten generischen Klasse abgeleitet wird, helfen. Überprüfen Sie jedoch, ob das Attribut issubClassOF möglicherweise nicht wie erwartet funktioniert.
Um dieses Problem zu lösen, können wir die ISSUBCASSOFRAWGENERC -Methode verwenden, die die Typdefinition der übergeordneten Klasse mit den angegebenen Typen vergleicht.
Das folgende Codefragment zeigt, wie diese Methode verwendet wird:
nach vergleichender generischer Typdefinition und nicht durch einen vollständigen Namen des begrenzten Typs, kann die ISSUBCLASSOFRAWGNERIC -Methode genau bestimmen, ob eine Klasse der Selbstgeneration zugewiesen ist.
<code class="language-csharp">static bool IsSubclassOfRawGeneric(Type generic, Type toCheck) { while (toCheck != null && toCheck != typeof(object)) { var cur = toCheck.IsGenericType ? toCheck.GetGenericTypeDefinition() : toCheck; if (generic == cur) { return true; } toCheck = toCheck.BaseType; } return false; }</code>
Das obige ist der detaillierte Inhalt vonWie kann ich abgeleitete Klassen aus einer generischen Klasse in C#zuverlässig identifizieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!