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

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

Patricia Arquette
Libérer: 2025-01-07 07:13:46
original
926 Les gens l'ont consulté

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

Détermination de l'implémentation d'une interface générique à partir d'un type mungled

Dans les scénarios où seul un type mutilé représentant une classe est disponible, déterminer s'il implémente une interface générique peut être difficile. Prenons l'exemple suivant :

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

La question se pose : comment savoir si le type Foo implémente l'interface générique IBar lorsque seul le type mutilé est fourni ?

Solution :

Une approche pour résoudre cette requête consiste à utiliser les méthodes IsGenericType et GetGenericTypeDefinition disponibles en C#. Ces méthodes permettent l'examen et la manipulation de types génériques.

// Assuming 'foo' represents the mangled type of 'Foo<T>'
bool isBar = foo.GetType().IsGenericType
  && foo.GetType().GetGenericTypeDefinition() == typeof(IBar<>);
Copier après la connexion

Ce code évalue si le type mutilé est générique et compare sa définition de type générique avec la définition de type d'interface attendue typeof(IBar<>). Si les deux conditions sont remplies, la variable isBar est définie sur true, indiquant l'implémentation du type de l'interface générique.

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
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