5 // Alejandro Serrano "Serras" (trupill@yahoo.es)
6 // Marek Safar (marek.safar@gmail.com)
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR TArg PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 #if NET_4_0 || BOOTSTRAP_NET_4_0
30 using System
.Runtime
.CompilerServices
;
32 [assembly
:TypeForwardedTo (typeof(Func
<>))]
33 [assembly
:TypeForwardedTo (typeof(Func
<,>))]
34 [assembly
:TypeForwardedTo (typeof(Func
<,,>))]
35 [assembly
:TypeForwardedTo (typeof(Func
<,,,>))]
36 [assembly
:TypeForwardedTo (typeof(Func
<,,,,>))]
41 #if NET_4_0 || BOOTSTRAP_NET_4_0
42 public delegate TResult Func
<in T1
, in T2
, in T3
, in T4
, in T5
, in T6
, in T7
, in T8
, in T9
, out TResult
> (
43 T1 arg1
, T2 arg2
, T3 arg3
, T4 arg4
, T5 arg5
, T6 arg6
, T7 arg7
, T8 arg8
, T9 arg9
);
45 public delegate TResult Func
<in T1
, in T2
, in T3
, in T4
, in T5
, in T6
, in T7
, in T8
, in T9
, in T10
, out TResult
> (
46 T1 arg1
, T2 arg2
, T3 arg3
, T4 arg4
, T5 arg5
, T6 arg6
, T7 arg7
, T8 arg8
, T9 arg9
, T10 arg10
);
48 public delegate TResult Func
<in T1
, in T2
, in T3
, in T4
, in T5
, in T6
, in T7
, in T8
, in T9
, in T10
, in T11
, out TResult
> (
49 T1 arg1
, T2 arg2
, T3 arg3
, T4 arg4
, T5 arg5
, T6 arg6
, T7 arg7
, T8 arg8
, T9 arg9
, T10 arg10
, T11 arg11
);
51 public delegate TResult Func
<in T1
, in T2
, in T3
, in T4
, in T5
, in T6
, in T7
, in T8
, in T9
, in T10
, in T11
, in T12
, out TResult
> (
52 T1 arg1
, T2 arg2
, T3 arg3
, T4 arg4
, T5 arg5
, T6 arg6
, T7 arg7
, T8 arg8
, T9 arg9
, T10 arg10
, T11 arg11
, T12 arg12
);
54 public delegate TResult Func
<in T1
, in T2
, in T3
, in T4
, in T5
, in T6
, in T7
, in T8
, in T9
, in T10
, in T11
, in T12
, in T13
, out TResult
> (
55 T1 arg1
, T2 arg2
, T3 arg3
, T4 arg4
, T5 arg5
, T6 arg6
, T7 arg7
, T8 arg8
, T9 arg9
, T10 arg10
, T11 arg11
, T12 arg12
, T13 arg13
);
57 public delegate TResult Func
<in T1
, in T2
, in T3
, in T4
, in T5
, in T6
, in T7
, in T8
, in T9
, in T10
, in T11
, in T12
, in T13
, in T14
, out TResult
> (
58 T1 arg1
, T2 arg2
, T3 arg3
, T4 arg4
, T5 arg5
, T6 arg6
, T7 arg7
, T8 arg8
, T9 arg9
, T10 arg10
, T11 arg11
, T12 arg12
, T13 arg13
, T4 arg14
);
60 public delegate TResult Func
<in T1
, in T2
, in T3
, in T4
, in T5
, in T6
, in T7
, in T8
, in T9
, in T10
, in T11
, in T12
, in T13
, in T14
, in T15
, out TResult
> (
61 T1 arg1
, T2 arg2
, T3 arg3
, T4 arg4
, T5 arg5
, T6 arg6
, T7 arg7
, T8 arg8
, T9 arg9
, T10 arg10
, T11 arg11
, T12 arg12
, T13 arg13
, T14 arg14
, T15 arg15
);
63 public delegate TResult Func
<in T1
, in T2
, in T3
, in T4
, in T5
, in T6
, in T7
, in T8
, in T9
, in T10
, in T11
, in T12
, in T13
, in T14
, in T15
, in T16
, out TResult
> (
64 T1 arg1
, T2 arg2
, T3 arg3
, T4 arg4
, T5 arg5
, T6 arg6
, T7 arg7
, T8 arg8
, T9 arg9
, T10 arg10
, T11 arg11
, T12 arg12
, T13 arg13
, T14 arg14
, T15 arg15
, T16 arg16
);
66 public delegate TResult Func
<TResult
> ();
67 public delegate TResult Func
<T
, TResult
> (T arg1
);
68 public delegate TResult Func
<T1
, T2
, TResult
> (T1 arg1
, T2 arg2
);
69 public delegate TResult Func
<T1
, T2
, T3
, TResult
> (T1 arg1
, T2 arg2
, T3 arg3
);
70 public delegate TResult Func
<T1
, T2
, T3
, T4
, TResult
> (T1 arg1
, T2 arg2
, T3 arg3
, T4 arg4
);
73 // Func<T1..T5,Result> to >T1..T8,TResult> are defined in mscorlib.dll for SL4
75 public delegate TResult Func
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, TResult
> (
76 T1 arg1
, T2 arg2
, T3 arg3
, T4 arg4
, T5 arg5
, T6 arg6
, T7 arg7
, T8 arg8
, T9 arg9
);
78 public delegate TResult Func
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, TResult
> (
79 T1 arg1
, T2 arg2
, T3 arg3
, T4 arg4
, T5 arg5
, T6 arg6
, T7 arg7
, T8 arg8
, T9 arg9
, T10 arg10
);
81 public delegate TResult Func
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, TResult
> (
82 T1 arg1
, T2 arg2
, T3 arg3
, T4 arg4
, T5 arg5
, T6 arg6
, T7 arg7
, T8 arg8
, T9 arg9
, T10 arg10
, T11 arg11
);
84 public delegate TResult Func
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, TResult
> (
85 T1 arg1
, T2 arg2
, T3 arg3
, T4 arg4
, T5 arg5
, T6 arg6
, T7 arg7
, T8 arg8
, T9 arg9
, T10 arg10
, T11 arg11
, T12 arg12
);
87 public delegate TResult Func
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, TResult
> (
88 T1 arg1
, T2 arg2
, T3 arg3
, T4 arg4
, T5 arg5
, T6 arg6
, T7 arg7
, T8 arg8
, T9 arg9
, T10 arg10
, T11 arg11
, T12 arg12
, T13 arg13
);
90 public delegate TResult Func
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
, TResult
> (
91 T1 arg1
, T2 arg2
, T3 arg3
, T4 arg4
, T5 arg5
, T6 arg6
, T7 arg7
, T8 arg8
, T9 arg9
, T10 arg10
, T11 arg11
, T12 arg12
, T13 arg13
, T14 arg14
);
93 public delegate TResult Func
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
, T15
, TResult
> (
94 T1 arg1
, T2 arg2
, T3 arg3
, T4 arg4
, T5 arg5
, T6 arg6
, T7 arg7
, T8 arg8
, T9 arg9
, T10 arg10
, T11 arg11
, T12 arg12
, T13 arg13
, T14 arg14
, T15 arg15
);
96 public delegate TResult Func
<T1
, T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, T10
, T11
, T12
, T13
, T14
, T15
, T16
, TResult
> (
97 T1 arg1
, T2 arg2
, T3 arg3
, T4 arg4
, T5 arg5
, T6 arg6
, T7 arg7
, T8 arg8
, T9 arg9
, T10 arg10
, T11 arg11
, T12 arg12
, T13 arg13
, T14 arg14
, T15 arg15
, T16 arg16
);