pada prinsipnya:
1. Inti dari delegasi adalah sebuah penunjuk, sebuah penunjuk fungsi. Dapatkan saja alamat pertama dari fungsi tersebut;
Delegasi C# menambahkan keamanan, yang tercermin dalam deteksi tipe blok instruksi fungsi yang direferensikan oleh penunjuk fungsi, seperti nilai kembalian, tipe parameter, dan jumlah parameter.
Ketika penunjuk fungsi di C diberi nilai (di C#, ini adalah saat delegasi dipakai, karena backend C# menangani delegasi sebagai kelas dan merangkumnya) apakah nilai yang ditetapkan memenuhi berbagai kondisi tipe (Nilai kembalian) , jenis parameter, jumlah parameter) tidak dicentang, dan jaminan diberikan oleh pengguna, dan C# akan mengkompilasi dan memintanya.
2. Proses instantiasi delegasi, yaitu proses membangun objek delegasi, adalah menetapkan alamat memori dari blok instruksi kode fungsi yang ada (fungsi statis, fungsi anggota non-statis dari instance) ke delegasi Ini; proses penugasan adalah apa yang dilakukan konstruktor yang didelegasikan. Oleh karena itu, konstruktor yang didelegasikan harus memiliki parameter. Parameter ini diproses oleh sistem di latar belakang, yaitu penunjuk fungsi yang memenuhi pemeriksaan tipe, dan tipe yang akan diperiksa (nilai kembalian). , tipe parameter, jumlah parameter) semuanya diberikan saat mendeklarasikan dan mendefinisikan delegasi.
3. Dua metode instantiasi delegasi:
1) A a = new A (nama metode statis/contoh. nama metode);
2) A a = nama metode statis/nama metode instance;
Dua metode yang dipanggil oleh delegasi:
1) a.Panggil()
2)sebuah()
Metode yang digunakan untuk membangun delegasi dapat berupa metode statis atau fungsi anggota dari objek yang dipakai. Intinya adalah bahwa instruksi kode ini telah dikompilasi, memori telah dialokasikan, dan parameter diteruskan ke delegasi (pada dasarnya, header dari delegasi). data instruksi ini) Alamat) valid dan bermakna. Dari perspektif ini, metode statis alami dan metode instance dapat digunakan untuk membangun dan membuat instance delegasi.