C# LanguageParola chiave rendimento


introduzione

Quando si utilizza la parola chiave yield in un'istruzione, si indica che il metodo, l'operatore o l'opzione di accesso in cui appare è un iteratore. L'utilizzo di yield per definire un iteratore rimuove la necessità di una classe extra esplicita (la classe che contiene lo stato per un'enumerazione) quando si implementa il modello IEnumerable e IEnumerator per un tipo di raccolta personalizzato.

Sintassi

  • yield return [TYPE]
  • cedimento

Osservazioni

Inserendo la parola chiave yield in un metodo con il tipo restituito di IEnumerable , IEnumerable<T> , IEnumerator o IEnumerator<T> indica al compilatore di generare un'implementazione del tipo restituito ( IEnumerable o IEnumerator ) che, una volta eseguito il loop, esegue il metodo fino a ciascun "rendimento" per ottenere ogni risultato.

La parola chiave yield è utile quando si desidera restituire "il prossimo" elemento di una sequenza teoricamente illimitata, quindi calcolare l'intera sequenza in anticipo sarebbe impossibile, o quando calcolare la sequenza completa di valori prima di tornare comporterebbe una pausa indesiderata per l'utente .

yield break può essere utilizzata anche per interrompere la sequenza in qualsiasi momento.

Poiché la parola chiave yield richiede un tipo di interfaccia iteratore come tipo restituito, ad esempio IEnumerable<T> , non è possibile utilizzarlo in un metodo async poiché restituisce un oggetto Task<IEnumerable<T>> .

Ulteriori letture

Parola chiave rendimento Esempi correlati