C#membina fungsi boleh menjadi tak segerak?
Dalam C#, pembina biasanya tidak dibenarkan diisytiharkan sebagai kaedah asynchronous, yang bermaksud bahawa mereka tidak boleh mengandungi pengubah. Apabila mencuba ini, pengkompil akan melaporkan kesilapan, menunjukkan bahawa pengubah
tidak sah untuk pembina.
async
Tingkah laku ini berasal dari faktor -faktor berikut: async
Pembina dilaksanakan tersembunyi apabila objek itu dimanfaatkan, dan ia harus diselesaikan secara serentak. Operasi asynchronous boleh memperkenalkan kelewatan atau keabnormalan, yang mungkin tidak sesuai semasa permulaan objek.
Pembina harus menubuhkan keadaan awal objek, dan keadaan ini harus diramalkan dan dapat diulangi. Operasi asynchronous boleh menyebabkan perubahan masa dan keputusan yang tidak disahkan, yang boleh memusnahkan proses permulaan objek. -
Pembina biasanya perlu dipaparkan untuk membuat contoh, dan kaedah asynchronous biasanya bergantung kepada komisen tak segerak atau panggilan balik untuk mendapatkan data. Ini bukan penampakan menjadikannya mencabar pembina dan operasi tak segerak dengan cara yang bermakna. -
- alternatif pembina asynchronous
Jika pemerolehan data diperlukan semasa penciptaan objek, anda boleh menggunakan beberapa kaedah untuk menggantikan fungsi struktur tak segerak:
Atribut Inisialisasi Automatik:
Gunakan atribut pelaksanaan automatik atau medan persendirian untuk memulakan data yang tidak segerak, dan pada masa yang sama ikuti ciri -ciri penyegerakan pembina.
Loading Delay: - Melaksanakan mekanisme pemuatan kelewatan, seperti atribut getter yang melakukan operasi tak segerak apabila panggilan pertama dipanggil. Ini membolehkan data pengambilan semula tertunda selepas objek itu dimanfaatkan.
Kaedah Kilang Asynchronous: Buat kaedah kilang asynchronous statik yang mengembalikan contoh kelas yang diperlukan. Kaedah ini boleh memproses pengambilalihan data tak segerak dan menyediakan cara yang mudah untuk memohon objek data yang telah dipenuhi.
-
Penyelesaian yang disediakan dalam artikel, walaupun kaedah asynchronous statik untuk mengembalikan contoh kelas adalah kaedah yang berubah -ubah, dengan berkesan menggabungkan kelebihan pengambilalihan data tak segerak dan kekangan pembina segerak. Walau bagaimanapun, berbanding dengan alternatif di atas, ia mungkin memperkenalkan kerumitan tambahan.
Atas ialah kandungan terperinci Bolehkah pembina C# tidak segerak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!