Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya dapat mengenal pasti kelas yang diperoleh dari kelas generik di C#?

Bagaimanakah saya dapat mengenal pasti kelas yang diperoleh dari kelas generik di C#?

DDD
DDDasal
2025-01-24 18:57:16407semak imbas

How Can I Reliably Identify Derived Classes from a Generic Class in C#?

Kelas derivatif menghasilkan kategori generik dalam c#

warisan dalam warisan yang berorientasikan objek membolehkan fungsi memperluaskan kelas induknya. Apabila menggunakan kelas generik, menentukan sama ada kelas diperoleh daripada kelas generik tertentu boleh membantu. Walau bagaimanapun, periksa atribut IssubClassof mungkin tidak berfungsi seperti yang diharapkan.

Untuk menyelesaikan masalah ini, kita boleh menggunakan kaedah Issubclassofrawgenerc, yang membandingkan definisi jenis kelas induk dengan jenis yang disediakan.

Serpihan kod berikut menunjukkan cara menggunakan kaedah ini:

Dengan definisi jenis generik perbandingan dan bukannya nama jenis terhad yang lengkap, kaedah ISSubClassofRawgneric dapat menentukan sama ada kelas ditugaskan untuk generasi diri.
<code class="language-csharp">static bool IsSubclassOfRawGeneric(Type generic, Type toCheck) {
    while (toCheck != null && toCheck != typeof(object)) {
        var cur = toCheck.IsGenericType ? toCheck.GetGenericTypeDefinition() : toCheck;
        if (generic == cur) {
            return true;
        }
        toCheck = toCheck.BaseType;
    }
    return false;
}</code>

Atas ialah kandungan terperinci Bagaimanakah saya dapat mengenal pasti kelas yang diperoleh dari kelas generik di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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