1. introducing the Func<…> delegate types
Here are the signatures
of all the Func delegate types:
public delegate TResult Func<TResult>()
public delegate TResult Func<T,TResult>(T arg)
public delegate TResult Func<T1,T2,TResult>(T1 arg1, T2 arg2)
public delegate TResult Func<T1,T2,T3,TResult>
(T1 arg1, T2 arg2, T3 arg3)
public delegate TResult Func<T1,T2,T3,T4,TResult>
(T1 arg1, T2 arg2, T3 arg3, T4 arg4)
Func<string,double,int> is equivalent to a delegate type of the form
delegate int SomeDelegate(string arg1, double arg2)
Func
<
string
>
returnHello;
Func < string , string > returnContent;
Func < string , int > returnLength;
returnHello = () => { return " Hi David! " ; };
returnContent = ( string text) => { return text; };
returnLength = ( string text) => { return text.Length; };
Console.WriteLine(returnHello());
Console.WriteLine(returnContent( " Hi David! " ));
Console.WriteLine( " Length of content: " + returnLength( " Hi David! " ));
Func < string , string > returnContent;
Func < string , int > returnLength;
returnHello = () => { return " Hi David! " ; };
returnContent = ( string text) => { return text; };
returnLength = ( string text) => { return text.Length; };
Console.WriteLine(returnHello());
Console.WriteLine(returnContent( " Hi David! " ));
Console.WriteLine( " Length of content: " + returnLength( " Hi David! " ));