‫Va bene, quindi ora che, sai, l'idea generale dei delegati, diamo un'occhiata in azione e per capirli
‫meglio, inizieremo usando un delegato che esiste già in Do diesis.
‫Quindi, prima di tutto, iniziamo definendo un semplice elenco di stringhe chiamate nomi.
‫E poi userò questo.
‫Diciamo che voglio rimuovere i nomi da esso.
‫Quindi qui c'è questo metodo remove all e quindi il metodo remove all mi permette di rimuovere tutti
‫gli elementi che corrispondono alle condizioni definite dal predicato specificato.
‫Quindi vedete che questa parola chiave del predicato verde qui è fondamentalmente ciò che possiamo passare.
‫Quindi questo è fondamentalmente qui un delegato che ci si aspetta.
‫Il predicato è solo il nome del delegato previsto.
‫Una volta cliccato, lo troverai qui.
‫Il delegato pubblico prescriverà.
‫Quindi puoi vedere che il predicato sono i delegati che accettano un oggetto di T, che significa tipo
‫specifico.
‫In questo caso, T è il tipo degli elementi della nostra lista.
‫Quindi nel nostro caso, è una stringa e restituisce un booleano.
‫Quindi, quando chiamiamo il metodo remove all, questo predicato verrà chiamato su ogni nome nel nostro elenco.
‫Se leggiamo la documentazione, impareremo che il bool restituito da questo predicato determinerà se
‫questo elemento verrà rimosso o meno dall'elenco.
‫Se restituisce true, l'elemento verrà rimosso.
‫Ed è nostro compito scrivere queste regole che determinano il destino dei nostri nomi nella nostra lista.
‫Quindi di questi nomi che abbiamo qui, che significa Aden se Alter e Anatoliy.
‫Dopotutto, le persone che hanno scritto il codice dietro il metodo remove all non possono leggere le nostre menti per determinare le
‫regole che vogliamo.
‫Esattamente.
‫Ecco perché creeremo il nostro metodo che corrisponda alla definizione del delegato del predicato e
‫lo passeremo al metodo remove all.
‫Diciamo che vogliamo rimuovere tutti i nomi che contengono la lettera I in modo da poter scrivere il nostro metodo di filtraggio in questo
‫modo.
‫Quindi creiamo solo un filtro di pool statico, che accetterà una stringa.
‫Quindi questo è il nostro metodo chiamato filtro e restituiamo se la stringa contiene la lettera I.
‫E qui stiamo usando il metodo contenuto, che restituirà un booleano, che restituirà true o
‫false.
‫Quindi qui il contenuto, vedi che prende una stringa che controlla se lo contiene e poi restituisce un booleano.
‫Quindi quello che facciamo qui è in effetti restituire un booleano.
‫E prende una stringa come parametro, quindi in pratica restituiremo true della stringa contiene I e quindi il
‫metodo remove all eseguirà questo metodo di filtro su tutti gli elementi nel nostro elenco.
‫Quindi ora passiamo il nostro metodo di filtro al metodo remove all che abbiamo qui che non è ancora
‫finito e ha ancora bisogno di delegati che possiamo passargli.
‫E aggiungiamo A per ogni ciclo prima e dopo il metodo remove all solo per l'osservazione.
‫Quindi aggiungerò questo piccolo raffreddore qui dove dico solo che questo è quello che è successo prima.
‫Quindi scriviamo un elenco di nomi sulla console con tutti i nomi che sono nel nostro elenco qui.
‫E poi rimuoviamo tutto questo, seguiamo un certo filtro e lo eseguiamo di nuovo.
‫Ora, questo filtro che stiamo passando, vedete, non usiamo le parentesi qui, anche se
‫è un metodo, quindi in pratica stiamo passando un metodo come parametro qui e stiamo controllando se la stringa che
‫abbiamo stai passando contiene un occhio.
‫Quindi eseguiamolo e vediamo quali nomi contengono.
‫E io.
‫Quindi se abbiamo identificato Walter e Anatoly, e dopo abbiamo rimosso tutto tranne Walter perché Walter è un filo
‫che non contiene un occhio.
‫OK.
‫Ed è fondamentalmente così che abbiamo usato un delegato che era preesistente.
‫E ora abbiamo usato un metodo che richiede un delegato che possiamo passargli.
‫Quindi fondamentalmente quello che è successo è che i nomi, ci sono piccole stringhe qui.
‫È stato dato per rimuovere tutto e controllato uno per uno con il filtro che abbiamo usato qui, quindi ha
‫passato ogni singolo valore dai nomi, uno dopo l'altro nel nostro metodo di filtro, ha attraversato il filtro e ha restituito se
‫è stato eliminato o meno.
‫Quindi questo booleano sarà vero se I è contenuto nella stringa che è stata passata.
‫Quindi quella stringa che stiamo attualmente guardando nel nostro elenco di nomi e se quest'anno restituisce true, allora il metodo
‫filter restituirà true.
‫Il che porterà poi a rimuovere tutto occupandosi di rimuovere il nome dalla lista dei nomi.
‫Va bene.
‫Quindi questo era solo un esempio di delegato.
‫E vedi, non abbiamo passato specificamente qui quello che vogliamo avere.
‫Quindi non abbiamo detto quale stringa vogliamo prendere, ad esempio, dicendo che il nome inizia con un indice o
‫altro.
‫Non abbiamo dovuto fare nulla di tutto ciò perché, beh, rimuovi tutto ciò che aspetta un delegato qui, ed è quello che gli
‫abbiamo passato.
‫Se questo è ancora un po' di confusione, non preoccuparti, avremo un altro paio di esempi, che
‫ti aiuteranno sicuramente a capire un po' meglio i delegati perché ne creeremo alcuni
‫noi stessi e poi renderà molto di più senso.
‫Allora ci vediamo al prossimo video.