Rumah >pembangunan bahagian belakang >C++ >Mengapa C# Tidak Menyokong Inferens Jenis Pembina?
Kekurangan Inferens Jenis Pembina C#: Penyelaman Dalam
Sistem inferens jenis teguh C#, faedah untuk kaedah generik, terutamanya mengetepikan inferens jenis pembina. Artikel ini meneroka sebab di sebalik peninggalan ini.
Halangan Konseptual
Walaupun nampaknya mudah, melaksanakan inferens jenis pembina memberikan kerumitan resolusi beban lampau yang ketara. Pernyataan new Foo(bar)
mungkin menghadapi berbilang jenis Foo
dengan parameter generik yang berbeza-beza dalam skop semasa. Menentukan pembina yang paling sesuai memerlukan semakan besar kepada mekanisme inferens jenis. Mengekalkan keserasian ke belakang merumitkan lagi perkara, memerlukan keutamaan pembina jenis bukan generik.
Pertukaran Praktikal
Walaupun mempunyai kelebihan yang jelas, melaksanakan inferens jenis pembina membawa kos pembangunan yang besar. Pembangun C# mesti menilai dengan teliti potensi manfaat berbanding keutamaan ciri lain. Tambahan pula, corak kilang yang sedia ada menyediakan alternatif yang berdaya maju, mengurangkan keperluan yang dirasakan untuk ciri khusus ini.
Konteks Sejarah
Walaupun cadangan berulang, inferens jenis pembina secara konsisten kekal sebagai keutamaan yang lebih rendah. Cabaran reka bentuk yang rumit ditambah dengan kewujudan penyelesaian yang berkesan telah menghalang kemasukannya sehingga kini.
Kemas Kini Status
Semasa dipertimbangkan untuk C# 6, inferens jenis pembina akhirnya dikecualikan daripada spesifikasi akhir.
Atas ialah kandungan terperinci Mengapa C# Tidak Menyokong Inferens Jenis Pembina?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!