È una commissione? Un delegato è un oggetto type-safe che punta a un altro metodo (o più metodi) nel programma che verrà chiamato in seguito. In termini semplici, un delegato è un oggetto che può fare riferimento a un metodo, e quando viene creato un delegato, crea un oggetto che fa riferimento al metodo, e poi il metodo può essere chiamato, cioè il delegato può chiamare il metodo a cui si riferisce.
Come uso la delega? 1. Definire il tipo di encarregamento
[modificatore di accesso]delegate returns tipo delegate name (parametro);
2. Dichiarare l'oggetto incaricato
Nome del delegato Il nome dell'istanza delegata;
3. Creare un oggetto di delega (determinare a quale metodo collegare)
nome istanza delegato=nome nuovo delegato (metodo di una certa classe)
4. Utilizzare il metodo della chiamata affidata
Nome dell'istanza delegata (parametro)
Precauzioni per l'encàrreco:1. La delega e il metodo devono avere gli stessi parametri.
2、Un delegato può chiamare più metodi, cioè un delegato può mantenere una lista di metodi richiamabili invece di un singolo metodo, noto come multicast (multicast)。
3、Il metodo implementato aumenta e diminuisce usando operazioni += e -=
Esempio:
Scrittura:
1. Nome Delegato Delegato = nuovo Delegato (nome del metodo che verrà chiamato); Nome dell'ordine (parametro);
2. Nome delegato Delegato = nome del metodo che verrà chiamato; Nome dell'ordine (parametro);
3. Metodo anonimo
delegate nome delegato=delegato(parametro){corpo del metodo che verrà chiamato}; Nome dell'ordine (parametro);
4. Espressione lambda
Nome dell'ordine delegato=((parametro 1,。。 parametro n)=>{corpo del metodo che sarà chiamato}); Nome dell'ordine (parametro);
5. Usa Action <T>e Func<T>, il primo non ha valore di ritorno
func< parametro 1, parametro 2, restituisci valore> nome delegato = ((parametro 1, parametro 2) => {corpo metodo con valore di ritorno }); Ritorno valore = nome ordine (parametro 1, parametro 2);
Codice adesivo:
|