');

C# LanguageI delegati

Osservazioni

Sommario

Un tipo delegato è un tipo che rappresenta una particolare firma del metodo. Un'istanza di questo tipo si riferisce a un metodo particolare con una firma corrispondente. I parametri del metodo possono avere tipi delegati e quindi questo metodo deve essere passato un riferimento a un altro metodo, che può quindi essere invocato

Tipi di delegati integrati: Action<...> , Predicate<T> e Func<...,TResult>

Il namespace System contiene Action<...> , Predicate<T> e Func<...,TResult> delegates, dove "..." rappresenta tra 0 e 16 parametri di tipo generico (per 0 parametri, Action is not- generico).

Func rappresenta i metodi con un tipo di ritorno che corrisponde a TResult e Action rappresenta i metodi senza un valore di ritorno (void). In entrambi i casi, i parametri di tipo generico aggiuntivi corrispondono, in ordine, ai parametri del metodo.

Predicate rappresenta un metodo con tipo di ritorno booleano, T è un parametro di input.

Tipi di delegati personalizzati

I tipi di delegato con nome possono essere dichiarati utilizzando la parola chiave delegate .

Invocazione di delegati

I delegati possono essere richiamati usando la stessa sintassi dei metodi: il nome dell'istanza delegata, seguito da parentesi contenenti qualsiasi parametro.

Assegnazione ai delegati

I delegati possono essere assegnati nei seguenti modi:

  • Assegnazione di un metodo denominato
  • Assegnare un metodo anonimo usando un lambda
  • Assegnazione di un metodo denominato utilizzando la parola chiave delegate .

Combinare i delegati

Più oggetti delegati possono essere assegnati a un'istanza delegata utilizzando l'operatore + . L'operatore - può essere utilizzato per rimuovere un componente delegato da un altro delegato.

I delegati Esempi correlati