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
DDDoriginal
2025-01-24 18:57:16407parcourir

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>

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!

Déclaration:
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