Menentukan sama ada Jenis Melaksanakan Jenis Antara Muka Generik Tertentu
Andaikan anda mempunyai takrif jenis berikut:
public interface IFoo<T> : IBar<T> {} public class Foo<T> : IFoo<T> {}
Memandangkan hanya jenis hancur, bagaimana anda boleh menentukan sama ada jenis Foo melaksanakan antara muka generik IBar
Penyelesaian dengan LINQ Query
Seperti yang dicadangkan oleh TcKs, anda boleh menggunakan pertanyaan LINQ berikut:
bool isBar = foo.GetType().GetInterfaces().Any(x => x.IsGenericType && x.GetGenericTypeDefinition() == typeof(IBar<>));
Ini pertanyaan menyemak sama ada mana-mana antara muka foo yang dilaksanakan ialah jenis generik yang sepadan dengan IBar
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan jika Jenis Melaksanakan Antara Muka Generik Tertentu dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!