C # notas de estudio Acción y Func

Bien definido en el sistema una comisión común, que es System.Action, y System.Funcla primera no devolvió valores de función, que se expresa en el valor de retorno de función. Para adaptarse al número de parámetros diferentes, el sistema define una serie de Actiony Func, como se muestra en la siguiente figura:
Inserte la descripción de la imagen aquí
Entre ellos, se puede personalizar el tipo de parámetro de cada delegado cuando se utiliza, es decir, se utiliza un tipo genérico, como indicar dos enteros como parámetros, Devuelve un doubletipo, se puede expresar como:

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

Otro ejemplo es voiduna función con un solo parámetro de cadena y tipo de retorno . Esto se puede expresar como:

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

O sin parámetros Action:

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

Los delegados y las expresiones Lambda se usan generalmente como parámetros de función. Por ejemplo, el sistema tiene una ForEachfunción que puede Listprocesar cada elemento de una lista ( ), y que este "procesamiento" es un Actiontipo de delegado, puede usarlo Una expresión Lambda como parámetro. ForEachEl prototipo de la función es:

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

Las ListForEach.csshiyongLambdaexpresiones de ejemplo ForEachse utilizan como parámetros para mostrar y encontrar el número total de letras en una palabra:

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);
	}
}

Supongo que te gusta

Origin blog.csdn.net/qq_45349225/article/details/114050779
Recomendado
Clasificación