Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya boleh menggunakan kaedah generik dengan pembolehubah jenis yang diselesaikan secara dinamik dalam C#?

Bagaimanakah saya boleh menggunakan kaedah generik dengan pembolehubah jenis yang diselesaikan secara dinamik dalam C#?

Linda Hamilton
Lepaskan: 2025-02-03 08:15:10
asal
916 orang telah melayarinya

How Can I Invoke Generic Methods with Dynamically Resolved Type Variables in C#?

Menggunakan Jenis Dinamik Jenis Pembolehubah C#Kaedah Generasi

Apabila menggunakan kaedah generik, anda sering menghadapi jenis parameter apabila menyusun, tetapi secara dinamik menentukan parameter jenis semasa runtime. Refleks menyediakan penyelesaian yang kuat untuk mengatasi cabaran ini.

penyelesaian genetik genetik yang dihasilkanHodHod

Untuk menggunakan jenis yang disimpan dalam pembolehubah mytype untuk memanggil kaedah generik GenericMedHod

, anda boleh menggunakan kaedah berikut:

  1. MethodInfo Menggunakan Kaedah Refleksi:

    MethodInfo method = typeof(Sample).GetMethod(nameof(Sample.GenericMethod));
    Salin selepas log masuk
  2. Menyediakan parameter jenis untuk membina kaedah generik:

    MethodInfo generic = method.MakeGenericMethod(myType);
    Salin selepas log masuk
    Salin selepas log masuk
  3. panggil kaedah generik pembina:

    generic.Invoke(this, null);
    Salin selepas log masuk
kaedah staticmethod static

untuk memanggil kaedah generik statik staticmethod

, sila ikuti langkah yang sama:

  1. metodinfo untuk mendapatkan kaedah generik statik:

    MethodInfo method = typeof(Sample).GetMethod(nameof(Sample.StaticMethod));
    Salin selepas log masuk
  2. Gunakan Parameter Jenis Membina Kaedah Generik:

    MethodInfo generic = method.MakeGenericMethod(myType);
    Salin selepas log masuk
    Salin selepas log masuk
  3. panggil kaedah generik pembina.

    generic.Invoke(null, null);
    Salin selepas log masuk
  4. C# 4 dan kata kunci dinamik yang dibawa oleh mudah

Walaupun refleksi menyediakan penyelesaian yang kuat untuk memanggil kaedah generik, ia mungkin melibatkan banyak kod model. Walau bagaimanapun, bermula dari C# 4, anda boleh menggunakan kata kunci dinamik untuk memudahkan proses ini. Jika kesimpulan jenis tersedia, menggunakan dinamik dapat mengurangkan kod yang diperlukan.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan kaedah generik dengan pembolehubah jenis yang diselesaikan secara dinamik dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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