Maison > développement back-end > C++ > Comment puis-je identifier de manière fiable les classes dérivées d'une classe générique en C# ?

Comment puis-je identifier de manière fiable les classes dérivées d'une classe générique en C# ?

DDD
Libérer: 2025-01-24 18:57:16
original
365 Les gens l'ont consulté

How Can I Reliably Identify Derived Classes from a Generic Class in C#?

La classe dérivée de la génération de catégories génériques en C #

L'héritage dans l'héritage orienté objet permet à la fonction d'extension de sa classe parent. Lorsque vous utilisez des classes génériques, déterminer si une classe est dérivée d'une classe générique spécifique peut aider. Cependant, vérifiez que l'attribut IssubClassOf peut ne pas fonctionner comme prévu.

Afin de résoudre ce problème, nous pouvons utiliser la méthode IssubClassofrawGenerc, qui compare la définition de type de la classe parent avec les types fournis.

Le fragment de code suivant montre comment utiliser cette méthode:

Par définition comparative de type générique plutôt que par un nom de type limité complet, la méthode IssubClassofrawGneric peut déterminer avec précision si une classe est affectée à l'auto-génération.
<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>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal