Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menghidupkan Jenis Generik dalam C# dengan Pembolehubah sebagai Parameter Jenis?

Bagaimanakah Saya Boleh Menghidupkan Jenis Generik dalam C# dengan Pembolehubah sebagai Parameter Jenis?

Barbara Streisand
Barbara Streisandasal
2025-01-13 06:03:43160semak imbas

How Can I Instantiate a Generic Type in C# with a Variable as the Type Parameter?

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:

  1. Dapatkan jenis kelas generik (contohnya, List<T>):

    <code class="language-C#">Type genericListType = typeof(List<>);</code>
  2. Ganti <T> dengan jenis yang diingini untuk mendapatkan jenis generik konkrit:

    <code class="language-C#">Type specificListType = genericListType.MakeGenericType(typeof(double));</code>
  3. 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!

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