Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menghidupkan Objek Generik dengan Pembina Berparameter dalam C#?

Bagaimanakah Saya Boleh Menghidupkan Objek Generik dengan Pembina Berparameter dalam C#?

Linda Hamilton
Lepaskan: 2025-01-09 12:07:43
asal
793 orang telah melayarinya

How Can I Instantiate Generic Objects with Parameterized Constructors in C#?

Instasiasi objek generik dengan pembina berparameter dalam C#

Dalam C#, adalah mungkin untuk mencipta contoh jenis generik dengan pembina berparameter. Walau bagaimanapun, contoh kod yang disediakan menyediakan kaedah pembina tanpa parameter baharu untuk kelas asas, yang tidak selalu praktikal dalam senario dunia sebenar.

Untuk menyelesaikan masalah ini, satu penyelesaian ialah menggunakan kelas Activator. Coretan kod berikut menunjukkan pendekatan ini:

<code class="language-C#">return (T)Activator.CreateInstance(typeof(T), new object[] { weight });</code>
Salin selepas log masuk

Kod ini menggunakan kaedah Activator.CreateInstance untuk membuat instantiate objek jenis T baharu. Ungkapan typeof(T) mengembalikan objek Jenis jenis generik Pembina dipanggil dengan menghantar parameter yang diperlukan sebagai tatasusunan objek.

Adalah penting untuk ambil perhatian bahawa kekangan new() pada jenis generik hanya digunakan untuk memastikan bahawa pengkompil menyemak kewujudan pembina tanpa parameter awam pada masa penyusunan. Mekanisme sebenar untuk penciptaan contoh masih lagi kelas Activator.

Walau bagaimanapun, perlu dipertimbangkan bahawa bergantung pada kelas Activator mungkin memperkenalkan tahap bau kod tertentu, dan secara amnya disyorkan untuk mengelakkan keperluan sedemikian dalam versi C# semasa.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghidupkan Objek Generik dengan Pembina Berparameter dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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