C#スタディノートアクションと機能

システムで明確に定義されているいくつかの一般的な手数料はSystem.Action、でありSystem.Func、前者は関数の戻り値で表される関数の値を返しませんでした。さまざまなパラメータの数に適応するために、次の図に示すように、システムは一連のActionとを定義します。これらの中で、各デリゲートのパラメータタイプは、使用時にカスタマイズできます。つまり、汎用タイプが使用されます。 2つの整数をパラメータとして示すなど、型を返します。次のように表すことができます。Func
ここに画像の説明を挿入
double

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

もう1つの例はvoid文字列パラメーターと戻り値の型が1つしかない関数です。これは次のように表すことができます。

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

またはパラメータなしAction

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

デリゲートとラムダ式は通常、関数パラメーターとして使用されます。たとえば、システムにはForEachリスト(List)の各要素を処理できる関数があり、この「処理」はActionデリゲートタイプであるため、ラムダ式をパラメータ。ForEach関数のプロトタイプは次のとおりです。

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

ListForEach.csshiyongLambda式のForEachは、単語内の文字の総数を表示および検索するためのパラメーターとして使用さます。

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

おすすめ

転載: blog.csdn.net/qq_45349225/article/details/114050779