menyatakan jenis generik C# menggunakan pembolehubah sebagai parameter jenis
Dalam C#, selalunya perlu untuk mencipta contoh jenis generik berdasarkan parameter jenis yang ditentukan secara dinamik. Walau bagaimanapun, memberikan nilai parameter jenis secara langsung dalam kata kunci new
tidak mungkin dan mengakibatkan ralat berikut:
<code>'List<k>' is a 'Type' but is used like a 'Type'</k></code>
Penyelesaian
Untuk mengatasi had ini, refleksi boleh digunakan untuk membina jenis generik secara eksplisit:
Dapatkan jenis kelas generik (contohnya, List<T>
):
<code class="language-C#">Type genericListType = typeof(List<>);</code>
Ganti <T>
dengan jenis yang diingini untuk mendapatkan jenis generik konkrit:
<code class="language-C#">Type specificListType = genericListType.MakeGenericType(typeof(double));</code>
Gunakan refleksi untuk mencipta tika jenis generik tertentu:
<code class="language-C#">var list = Activator.CreateInstance(specificListType);</code>
Dengan pendekatan ini, anda boleh mencipta tika jenis generik yang menggunakan parameter jenis didorong pembolehubah.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghidupkan Jenis Generik dalam C# dengan Pembolehubah sebagai Parameter Jenis?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!