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:
- MethodInfo Menggunakan Kaedah Refleksi:
MethodInfo method = typeof(Sample).GetMethod(nameof(Sample.GenericMethod));
Salin selepas log masuk
- Menyediakan parameter jenis untuk membina kaedah generik:
MethodInfo generic = method.MakeGenericMethod(myType);
Salin selepas log masuk
Salin selepas log masuk
- 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:
- metodinfo untuk mendapatkan kaedah generik statik:
MethodInfo method = typeof(Sample).GetMethod(nameof(Sample.StaticMethod));
Salin selepas log masuk
- Gunakan Parameter Jenis Membina Kaedah Generik:
MethodInfo generic = method.MakeGenericMethod(myType);
Salin selepas log masuk
Salin selepas log masuk
- panggil kaedah generik pembina.
generic.Invoke(null, null);
Salin selepas log masuk
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!