Maison > développement back-end > C++ > Comment puis-je déterminer si un type implémente une interface générique spécifique en C# ?

Comment puis-je déterminer si un type implémente une interface générique spécifique en C# ?

Barbara Streisand
Libérer: 2025-01-07 07:19:41
original
911 Les gens l'ont consulté

How Can I Determine if a Type Implements a Specific Generic Interface in C#?

Déterminer si un type implémente un type d'interface générique spécifique

Supposons que vous ayez les définitions de type suivantes :

public interface IFoo<T> : IBar<T> {}
public class Foo<T> : IFoo<T> {}
Copier après la connexion

Étant donné uniquement le type mutilé, comment pouvez-vous déterminer si le type Foo implémente l'interface générique IBar?

Solution avec requête LINQ

Comme suggéré par TcKs, vous pouvez utiliser la requête LINQ suivante :

bool isBar = foo.GetType().GetInterfaces().Any(x =>
  x.IsGenericType &amp;&amp;
  x.GetGenericTypeDefinition() == typeof(IBar<>));
Copier après la connexion

Ce La requête vérifie si l'une des interfaces implémentées de foo est un type générique qui correspond à l'attribut IBar définition. La méthode Any() renvoie true si au moins une interface répond à ces critères.

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 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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal