L'étude C # note l'action et la fonction

Bien défini dans le système, une commission commune, qui est System.Action, et System.Funcla première n'a pas retourné les valeurs de fonction, qui est exprimée la valeur de retour de fonction. Afin de s'adapter au nombre de paramètres différents, le système définit une série de Actionet Func, comme le montre la figure suivante:
Insérez la description de l'image ici
Parmi eux, le type de paramètre de chaque délégué peut être personnalisé lors de son utilisation, c'est-à-dire qu'un type générique est utilisé, comme l'indication de deux entiers comme paramètres, renvoie un doubletype, il peut être exprimé comme:

	Func<int, int, double> f = (x, y) => x * 3.0 + y * 2.0;

Un autre exemple est voidune fonction avec un seul paramètre de chaîne et un seul type de retour . Cela peut être exprimé comme suit:

	Action<string> print = s => Console.WriteLine(s);

Ou sans paramètres Action:

	Action showTime = () => Console.WriteLine(DateTime.Now);

Les délégués et les expressions Lambda sont généralement utilisés comme paramètres de fonction. Par exemple, le système a une ForEachfonction qui peut Listtraiter chaque élément d' une liste ( ), et que ce "traitement" est un Actiontype de délégué, vous pouvez l'utiliser. Une expression Lambda comme un paramètre. ForEachLe prototype de la fonction est:

	List<T>.ForEach(Action<T> a)

Des exemples d' ListForEach.csshiyongLambdaexpressions ForEachsont utilisés comme paramètres pour afficher et trouver le nombre total de lettres dans un mot:

public class ListForEach
{
    
    
	static void Main(){
    
    
		List<string> words = new List<string>(){
    
    
			"Apple", "Banana", "Orange", "Mango"};
		words.ForEach(s => Console.WriteLine(s));

		int letters = 0;
		words.ForEach(s => letters += s.Length);
		Console.WriteLine(letters);
	}
}

Je suppose que tu aimes

Origine blog.csdn.net/qq_45349225/article/details/114050779
conseillé
Classement