Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menentukan jika Jenis Melaksanakan Antara Muka Generik Tertentu dalam C#?

Bagaimanakah Saya Boleh Menentukan jika Jenis Melaksanakan Antara Muka Generik Tertentu dalam C#?

Barbara Streisand
Lepaskan: 2025-01-07 07:19:41
asal
824 orang telah melayarinya

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

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> {}
Salin selepas log masuk

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 &amp;&amp;
  x.GetGenericTypeDefinition() == typeof(IBar<>));
Salin selepas log masuk

Ini pertanyaan menyemak sama ada mana-mana antara muka foo yang dilaksanakan ialah jenis generik yang sepadan dengan IBar takrifan. Kaedah Any() mengembalikan benar jika sekurang-kurangnya satu antara muka memenuhi kriteria tersebut.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan