‫Va bene, allora cos'è un delegato?
‫Bene, in termini semplici, un delegato è un tipo che può contenere un riferimento a un metodo.
‫E quando chiami i delegati, verrà chiamato il metodo a cui si fa riferimento.
‫Immagina di sviluppare una libreria dell'interfaccia utente che altri sviluppatori possono utilizzare per creare app mobili.
‫E uno degli elementi dell'interfaccia utente che altri sviluppatori possono utilizzare è un pulsante.
‫Se osserviamo il codice dietro la classe del pulsante utilizzata per creare il pulsante verde sullo schermo, un
‫pulsante come questo avrà le seguenti proprietà.
‫Una stringa chiamata text con il valore ha inviato un colore chiamato back color, che è qualcosa di verdastro e
‫ovviamente due si chiama cise w ansys h per la larghezza e l'altezza del pulsante.
‫Ora quello che manca qui è un metodo che contenga il codice che deve essere eseguito una volta che si fa clic sul
‫pulsante.
‫Ora abbiamo un problema qui.
‫Noi, come sviluppatori che hanno creato questo sistema di interfaccia utente, non possiamo dire cosa stanno usando gli altri sviluppatori.
‫Il nostro sistema di interfaccia utente vuole che il pulsante faccia quando viene cliccato.
‫Ecco perché è necessario fornire l'evento UNCLICK come delegato e non come metodo normale.
‫E poiché un delegato è una variabile in grado di memorizzare un riferimento a un metodo,
‫come abbiamo sentito prima, altri sviluppatori possono scrivere la propria implementazione all'interno di un metodo che contiene la
‫logica che vogliono che venga eseguita al clic e assegnarla ai pulsanti al clic evento delegato che abbiamo fornito il nostro unico delegato può essere
‫definito in questo modo.
‫Quindi ora analizziamolo bit per bit, inizieremo scrivendo Axis Pacifier, questa parola chiave privata seguita dalla parola
‫chiave delegate, che dice al compilatore che stiamo definendo un nuovo tipo.
‫Infine, dobbiamo specificare il tipo di metodi che il nostro delegato può memorizzare.
‫E per tipo, intendo che il tipo restituito e i parametri sui delegati sono il nome del delegato che abbiamo appena
‫definito.
‫Ora, il passaggio successivo consiste nel creare effettivamente una variabile del suo nuovo tipo delegato.
‫Quindi lo definiamo proprio come definiamo qualsiasi variabile in C diesis iniziando con public, quindi il tipo della variabile
‫che stiamo creando, che è su unclick delegato e infine, il nome della variabile che è attivo.
‫Quindi, ancora una volta, abbiamo definito una variabile pubblica di tipo unclick delegato e l'abbiamo chiamata Click.
‫Questa variabile può contenere o memorizzare un riferimento a qualsiasi metodo purché abbia void come tipo restituito e non accetti
‫parametri, altrimenti otterremo un errore simile a quando proviamo a memorizzare un float all'interno di un
‫invariabile.
‫Allora come possiamo usare questo nuovo delegato?
‫Bene, diciamo che abbiamo bevuto una bottiglia che ha lasciato cadere una bottiglia nella nostra tela nell'Edem che stiamo usando per sviluppare questa
‫app mobile usando il nostro sistema UI, che ha portato alla creazione di un oggetto pulsante.
‫Supponiamo che il nome di questo pulsante sia pulsante di invio.
‫Quindi passiamo prima alla logica che vuoi eseguire quando si fa clic sul pulsante.
‫Nel nostro caso, vogliamo connetterci alla rete, inviare il messaggio e visualizzare un messaggio all'utente.
‫Quindi ora abbiamo un metodo normale chiamato clic del pulsante di invio che non è ancora collegato al pulsante in alcun modo.
‫Per risolvere il problema, dobbiamo assegnare il nostro metodo alla variabile unclick di tipo unclick delegate.
‫Nota che abbiamo scritto il nome del nostro metodo senza le parentesi, perché non lo stiamo chiamando,
‫stiamo solo memorizzando il suo riferimento nel delegato unclick ora sotto il cofano, se il mouse stava passando
‫sopra il pulsante e il mouse è stato cliccato, il nostro sistema di interfaccia utente chiamerà il delegato unclick del nostro pulsante di invio.
‫Quello in cambio chiamerà qualsiasi metodo che gli è stato assegnato.
‫In questo caso, chiamerà il clic del pulsante di invio e la finestra di dialogo del messaggio inviato verrà visualizzata in questo modo.
‫Chiunque utilizzi il nostro sistema di interfaccia utente può creare i propri metodi, quindi assegnare i propri metodi al nostro delegato
‫e possiamo chiamarli ogni volta che le condizioni sono giuste.
‫Non siamo limitati a deselezionare gli eventi.
‫Ad esempio, possiamo anche creare delegati per l'avvio o la chiusura dell'applicazione.
‫Bene, questo era un esempio molto rigoroso, ma questo è un vero caso d'uso dei delegati in generale.
‫Quindi in seguito impareremo come utilizzare uno dei delegati già esistenti in Do diesis.
‫E dopo, inizieremo a creare i nostri delegati, in modo simile a come abbiamo fatto in questo esempio.
‫Allora ci vediamo al prossimo video.