Maison >développement back-end >C++ >Comment puis-je déterminer si un type générique implémente une interface générique spécifique en utilisant uniquement son nom de type ?
Problème :
Considérez ces définitions de type :
public interface IFoo<T> : IBar<T> {} public class Foo<T> : IFoo<T> {}
Objectif :
Comment déterminer si le type Foo
Réponse :
En utilisant l'approche proposée par TcKs, nous pouvons utiliser la requête LINQ suivante :
bool isBar = foo.GetType().GetInterfaces().Any(x => x.IsGenericType && x.GetGenericTypeDefinition() == typeof(IBar<>));
Cette requête vérifie si l'une des interfaces implémentées de la variable foo est un type générique et sa définition de type générique correspond à celle de IBar
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!