Kosongkan Perwakilan Tanpa Nama dalam Pengisytiharan Acara: Kemungkinan Kelemahan
Dalam pengaturcaraan acara, amalan biasa menambah perwakilan tanpa nama kosong terus pada pengisytiharan acara , seperti yang dilihat di bawah, memudahkan peningkatan acara dengan menghapuskan keperluan untuk null semak:
// Deliberately empty subscriber public event EventHandler AskQuestion = delegate {};
Walaupun teknik ini menyelesaikan isu tertentu, adalah penting untuk mempertimbangkan potensi kelemahan:
Daripada bergantung pada perwakilan kosong, pendekatan alternatif ialah memanfaatkan kaedah lanjutan yang mengendalikan semakan nol dan memudahkan peningkatan acara:
public static void Raise(this EventHandler handler, object sender, EventArgs e) { if(handler != null) { handler(sender, e); } }
Menggunakan sambungan ini, peningkatan acara menjadi mudah dan mengurangkan semakan batal overhead:
// Works, even for null events. MyButtonClick.Raise(this, EventArgs.Empty);
Penyelesaian berasaskan sambungan ini menghapuskan kedua-dua kelemahan prestasi dan penyelenggaraan yang dikaitkan dengan perwakilan kosong tanpa nama dalam pengisytiharan acara.
Atas ialah kandungan terperinci Patutkah Anda Menggunakan Perwakilan Tanpa Nama Kosong dalam Pengisytiharan Acara?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!