Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 63994|Répondre: 1

[Source] C# hérite de la détermination de IsAssignableFrom, IsSousclasseDe

[Copié le lien]
Publié sur 18/11/2019 11:45:09 | | |
Parfois, il faut déterminer si une classe implémente une interface, par exemple lorsqu’on utilise un mécanisme de réflexion pour trouver un type spécifique.

En termes simples, vous pouvez utiliser la méthode Type.IsAssignableFrom :

IsAssignableFrom indique si le type BarClass peut être attribué à l’interface IFoo, donc la condition pour qu’il retourne vrai est que BarClass implémente directement ou indirectement l’interface IFoo. Il existe également une méthode dans le type de type, IsSubclassOf, qui estSeulementUtilisé pour juger les relations d’héritage des classes, telles que

Indique que FooClass est hérité de BarClass.

Bien sûr, IsAssignableFrom peut aussi être utilisé pour déterminer l’héritage.

Donc, pour le code suivant :

interface I { /* ... */ }
classe A : I { /* ... */ }
classe B : A { /* ... */ }
Les valeurs de retour pour IsSubclassOf et IsAssignableFrom sont :

typeof(A).isAssignableDe(typeof(I)) ; faux
typeof(A).isSous-Classe De(typede(I)) ; faux
  
typeof(I).isAssignableDe(typeof(A)) ; Vrai
typeof(I).isAssignableDe(typeof(B)) ; Vrai
typeof(B).isSous-Classe De(typede(I)) ; faux
  
typeof(A).isAssignableDe(typeof(A)) ; Vrai
typeof(A).isSous-Classe(typede(A)) ; faux
  
typeof(A).isAssignableDe(typeof(B)) ; Vrai
typeof(A).isSous-classe de(typeof(B)) ; faux
  
typeof(B).isAssignableDe(typeof(A)) ; faux
typeof(B).isSous-Classe de(typede(A)) ; Vrai






Précédent:Conversion horodatage .NET Core (10 bits)
Prochain:Foit EF Core : DbContextPool cause une épuisement de connexion au pool de base de données
 Propriétaire| Publié sur 19/03/2021 13:39:47 |
Obtient un objet qui hérite d’une classe de base générique

Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com