Heim > Backend-Entwicklung > C++ > Wie kann ich feststellen, ob ein Typ eine bestimmte generische Schnittstelle in C# implementiert?

Wie kann ich feststellen, ob ein Typ eine bestimmte generische Schnittstelle in C# implementiert?

Barbara Streisand
Freigeben: 2025-01-07 07:19:41
Original
812 Leute haben es durchsucht

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

Bestimmen, ob ein Typ einen bestimmten generischen Schnittstellentyp implementiert

Angenommen, Sie haben die folgenden Typdefinitionen:

public interface IFoo<T> : IBar<T> {}
public class Foo<T> : IFoo<T> {}
Nach dem Login kopieren

Wie können Sie anhand des verstümmelten Typs feststellen, ob der Typ Foo die generische Schnittstelle implementiert? IBar?

Lösung mit LINQ-Abfrage

Wie von TcKs vorgeschlagen, können Sie die folgende LINQ-Abfrage verwenden:

bool isBar = foo.GetType().GetInterfaces().Any(x =>
  x.IsGenericType &amp;&amp;
  x.GetGenericTypeDefinition() == typeof(IBar<>));
Nach dem Login kopieren

Dies Die Abfrage prüft, ob eine der implementierten Schnittstellen von foo ein generischer Typ ist, der mit dem IBar übereinstimmt. Definition. Die Any()-Methode gibt „true“ zurück, wenn mindestens eine Schnittstelle dieses Kriterium erfüllt.

Das obige ist der detaillierte Inhalt vonWie kann ich feststellen, ob ein Typ eine bestimmte generische Schnittstelle in C# implementiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage