Facilitate the merge
[mono.git] / mcs / class / dlr / Runtime / Microsoft.Scripting.Core / Utils / Function.cs
1 /* ****************************************************************************
2  *
3  * Copyright (c) Microsoft Corporation. 
4  *
5  * This source code is subject to terms and conditions of the Microsoft Public License. A 
6  * copy of the license can be found in the License.html file at the root of this distribution. If 
7  * you cannot locate the  Microsoft Public License, please send an email to 
8  * dlr@microsoft.com. By using this source code in any fashion, you are agreeing to be bound 
9  * by the terms of the Microsoft Public License.
10  *
11  * You must not remove this notice, or any other, from this software.
12  *
13  *
14  * ***************************************************************************/
15
16 #if CLR2
17 namespace Microsoft.Scripting.Utils {
18 #else
19 namespace System {
20 #endif
21
22 #if CLR2 || SILVERLIGHT
23
24     /// <summary>
25     /// Encapsulates a method that has no parameters and returns a value of the type specified by the TResult parameter.
26     /// </summary>
27     /// <typeparam name="TResult">The type of the return value of the method that this delegate encapsulates.</typeparam>
28     /// <returns>The return value of the method that this delegate encapsulates.</returns>
29     public delegate TResult Func<TResult>();
30
31     /// <summary>
32     /// Encapsulates a method that has one parameter and returns a value of the type specified by the TResult parameter.
33     /// </summary>
34     /// <typeparam name="T">The type of the first parameter of the method that this delegate encapsulates.</typeparam>
35     /// <typeparam name="TResult">The type of the return value of the method that this delegate encapsulates.</typeparam>
36     /// <param name="arg">The first parameter of the method that this delegate encapsulates.</param>
37     /// <returns>The return value of the method that this delegate encapsulates.</returns>
38     public delegate TResult Func<T, TResult>(T arg);
39
40 #endif
41
42     #region Generated Func Types
43
44     // *** BEGIN GENERATED CODE ***
45     // generated by function: gen_func_types from: generate_dynsites.py
46
47 #if CLR2 || SILVERLIGHT
48
49     /// <summary>
50     /// Encapsulates a method that has two parameters and returns a value of the type specified by the TResult parameter.
51     /// </summary>
52     /// <typeparam name="T1">The type of the first parameter of the method that this delegate encapsulates.</typeparam>
53     /// <typeparam name="T2">The type of the second parameter of the method that this delegate encapsulates.</typeparam>
54     /// <typeparam name="TResult">The type of the return value of the method that this delegate encapsulates.</typeparam>
55     /// <param name="arg1">The first parameter of the method that this delegate encapsulates.</param>
56     /// <param name="arg2">The second parameter of the method that this delegate encapsulates.</param>
57     /// <returns>The return value of the method that this delegate encapsulates.</returns>
58     [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
59     public delegate TResult Func<T1, T2, TResult>(T1 arg1, T2 arg2);
60
61     /// <summary>
62     /// Encapsulates a method that has three parameters and returns a value of the type specified by the TResult parameter.
63     /// </summary>
64     /// <typeparam name="T1">The type of the first parameter of the method that this delegate encapsulates.</typeparam>
65     /// <typeparam name="T2">The type of the second parameter of the method that this delegate encapsulates.</typeparam>
66     /// <typeparam name="T3">The type of the third parameter of the method that this delegate encapsulates.</typeparam>
67     /// <typeparam name="TResult">The type of the return value of the method that this delegate encapsulates.</typeparam>
68     /// <param name="arg1">The first parameter of the method that this delegate encapsulates.</param>
69     /// <param name="arg2">The second parameter of the method that this delegate encapsulates.</param>
70     /// <param name="arg3">The third parameter of the method that this delegate encapsulates.</param>
71     /// <returns>The return value of the method that this delegate encapsulates.</returns>
72     [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
73     public delegate TResult Func<T1, T2, T3, TResult>(T1 arg1, T2 arg2, T3 arg3);
74
75     /// <summary>
76     /// Encapsulates a method that has four parameters and returns a value of the type specified by the TResult parameter.
77     /// </summary>
78     /// <typeparam name="T1">The type of the first parameter of the method that this delegate encapsulates.</typeparam>
79     /// <typeparam name="T2">The type of the second parameter of the method that this delegate encapsulates.</typeparam>
80     /// <typeparam name="T3">The type of the third parameter of the method that this delegate encapsulates.</typeparam>
81     /// <typeparam name="T4">The type of the fourth parameter of the method that this delegate encapsulates.</typeparam>
82     /// <typeparam name="TResult">The type of the return value of the method that this delegate encapsulates.</typeparam>
83     /// <param name="arg1">The first parameter of the method that this delegate encapsulates.</param>
84     /// <param name="arg2">The second parameter of the method that this delegate encapsulates.</param>
85     /// <param name="arg3">The third parameter of the method that this delegate encapsulates.</param>
86     /// <param name="arg4">The fourth parameter of the method that this delegate encapsulates.</param>
87     /// <returns>The return value of the method that this delegate encapsulates.</returns>
88     [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
89     public delegate TResult Func<T1, T2, T3, T4, TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4);
90
91     /// <summary>
92     /// Encapsulates a method that has five parameters and returns a value of the type specified by the TResult parameter.
93     /// </summary>
94     /// <typeparam name="T1">The type of the first parameter of the method that this delegate encapsulates.</typeparam>
95     /// <typeparam name="T2">The type of the second parameter of the method that this delegate encapsulates.</typeparam>
96     /// <typeparam name="T3">The type of the third parameter of the method that this delegate encapsulates.</typeparam>
97     /// <typeparam name="T4">The type of the fourth parameter of the method that this delegate encapsulates.</typeparam>
98     /// <typeparam name="T5">The type of the fifth parameter of the method that this delegate encapsulates.</typeparam>
99     /// <typeparam name="TResult">The type of the return value of the method that this delegate encapsulates.</typeparam>
100     /// <param name="arg1">The first parameter of the method that this delegate encapsulates.</param>
101     /// <param name="arg2">The second parameter of the method that this delegate encapsulates.</param>
102     /// <param name="arg3">The third parameter of the method that this delegate encapsulates.</param>
103     /// <param name="arg4">The fourth parameter of the method that this delegate encapsulates.</param>
104     /// <param name="arg5">The fifth parameter of the method that this delegate encapsulates.</param>
105     /// <returns>The return value of the method that this delegate encapsulates.</returns>
106     [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
107     public delegate TResult Func<T1, T2, T3, T4, T5, TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5);
108
109     /// <summary>
110     /// Encapsulates a method that has six parameters and returns a value of the type specified by the TResult parameter.
111     /// </summary>
112     /// <typeparam name="T1">The type of the first parameter of the method that this delegate encapsulates.</typeparam>
113     /// <typeparam name="T2">The type of the second parameter of the method that this delegate encapsulates.</typeparam>
114     /// <typeparam name="T3">The type of the third parameter of the method that this delegate encapsulates.</typeparam>
115     /// <typeparam name="T4">The type of the fourth parameter of the method that this delegate encapsulates.</typeparam>
116     /// <typeparam name="T5">The type of the fifth parameter of the method that this delegate encapsulates.</typeparam>
117     /// <typeparam name="T6">The type of the sixth parameter of the method that this delegate encapsulates.</typeparam>
118     /// <typeparam name="TResult">The type of the return value of the method that this delegate encapsulates.</typeparam>
119     /// <param name="arg1">The first parameter of the method that this delegate encapsulates.</param>
120     /// <param name="arg2">The second parameter of the method that this delegate encapsulates.</param>
121     /// <param name="arg3">The third parameter of the method that this delegate encapsulates.</param>
122     /// <param name="arg4">The fourth parameter of the method that this delegate encapsulates.</param>
123     /// <param name="arg5">The fifth parameter of the method that this delegate encapsulates.</param>
124     /// <param name="arg6">The sixth parameter of the method that this delegate encapsulates.</param>
125     /// <returns>The return value of the method that this delegate encapsulates.</returns>
126     [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
127     public delegate TResult Func<T1, T2, T3, T4, T5, T6, TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6);
128
129     /// <summary>
130     /// Encapsulates a method that has seven parameters and returns a value of the type specified by the TResult parameter.
131     /// </summary>
132     /// <typeparam name="T1">The type of the first parameter of the method that this delegate encapsulates.</typeparam>
133     /// <typeparam name="T2">The type of the second parameter of the method that this delegate encapsulates.</typeparam>
134     /// <typeparam name="T3">The type of the third parameter of the method that this delegate encapsulates.</typeparam>
135     /// <typeparam name="T4">The type of the fourth parameter of the method that this delegate encapsulates.</typeparam>
136     /// <typeparam name="T5">The type of the fifth parameter of the method that this delegate encapsulates.</typeparam>
137     /// <typeparam name="T6">The type of the sixth parameter of the method that this delegate encapsulates.</typeparam>
138     /// <typeparam name="T7">The type of the seventh parameter of the method that this delegate encapsulates.</typeparam>
139     /// <typeparam name="TResult">The type of the return value of the method that this delegate encapsulates.</typeparam>
140     /// <param name="arg1">The first parameter of the method that this delegate encapsulates.</param>
141     /// <param name="arg2">The second parameter of the method that this delegate encapsulates.</param>
142     /// <param name="arg3">The third parameter of the method that this delegate encapsulates.</param>
143     /// <param name="arg4">The fourth parameter of the method that this delegate encapsulates.</param>
144     /// <param name="arg5">The fifth parameter of the method that this delegate encapsulates.</param>
145     /// <param name="arg6">The sixth parameter of the method that this delegate encapsulates.</param>
146     /// <param name="arg7">The seventh parameter of the method that this delegate encapsulates.</param>
147     /// <returns>The return value of the method that this delegate encapsulates.</returns>
148     [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
149     public delegate TResult Func<T1, T2, T3, T4, T5, T6, T7, TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7);
150
151     /// <summary>
152     /// Encapsulates a method that has eight parameters and returns a value of the type specified by the TResult parameter.
153     /// </summary>
154     /// <typeparam name="T1">The type of the first parameter of the method that this delegate encapsulates.</typeparam>
155     /// <typeparam name="T2">The type of the second parameter of the method that this delegate encapsulates.</typeparam>
156     /// <typeparam name="T3">The type of the third parameter of the method that this delegate encapsulates.</typeparam>
157     /// <typeparam name="T4">The type of the fourth parameter of the method that this delegate encapsulates.</typeparam>
158     /// <typeparam name="T5">The type of the fifth parameter of the method that this delegate encapsulates.</typeparam>
159     /// <typeparam name="T6">The type of the sixth parameter of the method that this delegate encapsulates.</typeparam>
160     /// <typeparam name="T7">The type of the seventh parameter of the method that this delegate encapsulates.</typeparam>
161     /// <typeparam name="T8">The type of the eighth parameter of the method that this delegate encapsulates.</typeparam>
162     /// <typeparam name="TResult">The type of the return value of the method that this delegate encapsulates.</typeparam>
163     /// <param name="arg1">The first parameter of the method that this delegate encapsulates.</param>
164     /// <param name="arg2">The second parameter of the method that this delegate encapsulates.</param>
165     /// <param name="arg3">The third parameter of the method that this delegate encapsulates.</param>
166     /// <param name="arg4">The fourth parameter of the method that this delegate encapsulates.</param>
167     /// <param name="arg5">The fifth parameter of the method that this delegate encapsulates.</param>
168     /// <param name="arg6">The sixth parameter of the method that this delegate encapsulates.</param>
169     /// <param name="arg7">The seventh parameter of the method that this delegate encapsulates.</param>
170     /// <param name="arg8">The eighth parameter of the method that this delegate encapsulates.</param>
171     /// <returns>The return value of the method that this delegate encapsulates.</returns>
172     [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
173     public delegate TResult Func<T1, T2, T3, T4, T5, T6, T7, T8, TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8);
174
175     /// <summary>
176     /// Encapsulates a method that has nine parameters and returns a value of the type specified by the TResult parameter.
177     /// </summary>
178     /// <typeparam name="T1">The type of the first parameter of the method that this delegate encapsulates.</typeparam>
179     /// <typeparam name="T2">The type of the second parameter of the method that this delegate encapsulates.</typeparam>
180     /// <typeparam name="T3">The type of the third parameter of the method that this delegate encapsulates.</typeparam>
181     /// <typeparam name="T4">The type of the fourth parameter of the method that this delegate encapsulates.</typeparam>
182     /// <typeparam name="T5">The type of the fifth parameter of the method that this delegate encapsulates.</typeparam>
183     /// <typeparam name="T6">The type of the sixth parameter of the method that this delegate encapsulates.</typeparam>
184     /// <typeparam name="T7">The type of the seventh parameter of the method that this delegate encapsulates.</typeparam>
185     /// <typeparam name="T8">The type of the eighth parameter of the method that this delegate encapsulates.</typeparam>
186     /// <typeparam name="T9">The type of the ninth parameter of the method that this delegate encapsulates.</typeparam>
187     /// <typeparam name="TResult">The type of the return value of the method that this delegate encapsulates.</typeparam>
188     /// <param name="arg1">The first parameter of the method that this delegate encapsulates.</param>
189     /// <param name="arg2">The second parameter of the method that this delegate encapsulates.</param>
190     /// <param name="arg3">The third parameter of the method that this delegate encapsulates.</param>
191     /// <param name="arg4">The fourth parameter of the method that this delegate encapsulates.</param>
192     /// <param name="arg5">The fifth parameter of the method that this delegate encapsulates.</param>
193     /// <param name="arg6">The sixth parameter of the method that this delegate encapsulates.</param>
194     /// <param name="arg7">The seventh parameter of the method that this delegate encapsulates.</param>
195     /// <param name="arg8">The eighth parameter of the method that this delegate encapsulates.</param>
196     /// <param name="arg9">The ninth parameter of the method that this delegate encapsulates.</param>
197     /// <returns>The return value of the method that this delegate encapsulates.</returns>
198     [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
199     public delegate TResult Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9);
200
201     /// <summary>
202     /// Encapsulates a method that has ten parameters and returns a value of the type specified by the TResult parameter.
203     /// </summary>
204     /// <typeparam name="T1">The type of the first parameter of the method that this delegate encapsulates.</typeparam>
205     /// <typeparam name="T2">The type of the second parameter of the method that this delegate encapsulates.</typeparam>
206     /// <typeparam name="T3">The type of the third parameter of the method that this delegate encapsulates.</typeparam>
207     /// <typeparam name="T4">The type of the fourth parameter of the method that this delegate encapsulates.</typeparam>
208     /// <typeparam name="T5">The type of the fifth parameter of the method that this delegate encapsulates.</typeparam>
209     /// <typeparam name="T6">The type of the sixth parameter of the method that this delegate encapsulates.</typeparam>
210     /// <typeparam name="T7">The type of the seventh parameter of the method that this delegate encapsulates.</typeparam>
211     /// <typeparam name="T8">The type of the eighth parameter of the method that this delegate encapsulates.</typeparam>
212     /// <typeparam name="T9">The type of the ninth parameter of the method that this delegate encapsulates.</typeparam>
213     /// <typeparam name="T10">The type of the tenth parameter of the method that this delegate encapsulates.</typeparam>
214     /// <typeparam name="TResult">The type of the return value of the method that this delegate encapsulates.</typeparam>
215     /// <param name="arg1">The first parameter of the method that this delegate encapsulates.</param>
216     /// <param name="arg2">The second parameter of the method that this delegate encapsulates.</param>
217     /// <param name="arg3">The third parameter of the method that this delegate encapsulates.</param>
218     /// <param name="arg4">The fourth parameter of the method that this delegate encapsulates.</param>
219     /// <param name="arg5">The fifth parameter of the method that this delegate encapsulates.</param>
220     /// <param name="arg6">The sixth parameter of the method that this delegate encapsulates.</param>
221     /// <param name="arg7">The seventh parameter of the method that this delegate encapsulates.</param>
222     /// <param name="arg8">The eighth parameter of the method that this delegate encapsulates.</param>
223     /// <param name="arg9">The ninth parameter of the method that this delegate encapsulates.</param>
224     /// <param name="arg10">The tenth parameter of the method that this delegate encapsulates.</param>
225     /// <returns>The return value of the method that this delegate encapsulates.</returns>
226     [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
227     public delegate TResult Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10);
228
229     /// <summary>
230     /// Encapsulates a method that has eleven parameters and returns a value of the type specified by the TResult parameter.
231     /// </summary>
232     /// <typeparam name="T1">The type of the first parameter of the method that this delegate encapsulates.</typeparam>
233     /// <typeparam name="T2">The type of the second parameter of the method that this delegate encapsulates.</typeparam>
234     /// <typeparam name="T3">The type of the third parameter of the method that this delegate encapsulates.</typeparam>
235     /// <typeparam name="T4">The type of the fourth parameter of the method that this delegate encapsulates.</typeparam>
236     /// <typeparam name="T5">The type of the fifth parameter of the method that this delegate encapsulates.</typeparam>
237     /// <typeparam name="T6">The type of the sixth parameter of the method that this delegate encapsulates.</typeparam>
238     /// <typeparam name="T7">The type of the seventh parameter of the method that this delegate encapsulates.</typeparam>
239     /// <typeparam name="T8">The type of the eighth parameter of the method that this delegate encapsulates.</typeparam>
240     /// <typeparam name="T9">The type of the ninth parameter of the method that this delegate encapsulates.</typeparam>
241     /// <typeparam name="T10">The type of the tenth parameter of the method that this delegate encapsulates.</typeparam>
242     /// <typeparam name="T11">The type of the eleventh parameter of the method that this delegate encapsulates.</typeparam>
243     /// <typeparam name="TResult">The type of the return value of the method that this delegate encapsulates.</typeparam>
244     /// <param name="arg1">The first parameter of the method that this delegate encapsulates.</param>
245     /// <param name="arg2">The second parameter of the method that this delegate encapsulates.</param>
246     /// <param name="arg3">The third parameter of the method that this delegate encapsulates.</param>
247     /// <param name="arg4">The fourth parameter of the method that this delegate encapsulates.</param>
248     /// <param name="arg5">The fifth parameter of the method that this delegate encapsulates.</param>
249     /// <param name="arg6">The sixth parameter of the method that this delegate encapsulates.</param>
250     /// <param name="arg7">The seventh parameter of the method that this delegate encapsulates.</param>
251     /// <param name="arg8">The eighth parameter of the method that this delegate encapsulates.</param>
252     /// <param name="arg9">The ninth parameter of the method that this delegate encapsulates.</param>
253     /// <param name="arg10">The tenth parameter of the method that this delegate encapsulates.</param>
254     /// <param name="arg11">The eleventh parameter of the method that this delegate encapsulates.</param>
255     /// <returns>The return value of the method that this delegate encapsulates.</returns>
256     [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
257     public delegate TResult Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11);
258
259     /// <summary>
260     /// Encapsulates a method that has twelve parameters and returns a value of the type specified by the TResult parameter.
261     /// </summary>
262     /// <typeparam name="T1">The type of the first parameter of the method that this delegate encapsulates.</typeparam>
263     /// <typeparam name="T2">The type of the second parameter of the method that this delegate encapsulates.</typeparam>
264     /// <typeparam name="T3">The type of the third parameter of the method that this delegate encapsulates.</typeparam>
265     /// <typeparam name="T4">The type of the fourth parameter of the method that this delegate encapsulates.</typeparam>
266     /// <typeparam name="T5">The type of the fifth parameter of the method that this delegate encapsulates.</typeparam>
267     /// <typeparam name="T6">The type of the sixth parameter of the method that this delegate encapsulates.</typeparam>
268     /// <typeparam name="T7">The type of the seventh parameter of the method that this delegate encapsulates.</typeparam>
269     /// <typeparam name="T8">The type of the eighth parameter of the method that this delegate encapsulates.</typeparam>
270     /// <typeparam name="T9">The type of the ninth parameter of the method that this delegate encapsulates.</typeparam>
271     /// <typeparam name="T10">The type of the tenth parameter of the method that this delegate encapsulates.</typeparam>
272     /// <typeparam name="T11">The type of the eleventh parameter of the method that this delegate encapsulates.</typeparam>
273     /// <typeparam name="T12">The type of the twelfth parameter of the method that this delegate encapsulates.</typeparam>
274     /// <typeparam name="TResult">The type of the return value of the method that this delegate encapsulates.</typeparam>
275     /// <param name="arg1">The first parameter of the method that this delegate encapsulates.</param>
276     /// <param name="arg2">The second parameter of the method that this delegate encapsulates.</param>
277     /// <param name="arg3">The third parameter of the method that this delegate encapsulates.</param>
278     /// <param name="arg4">The fourth parameter of the method that this delegate encapsulates.</param>
279     /// <param name="arg5">The fifth parameter of the method that this delegate encapsulates.</param>
280     /// <param name="arg6">The sixth parameter of the method that this delegate encapsulates.</param>
281     /// <param name="arg7">The seventh parameter of the method that this delegate encapsulates.</param>
282     /// <param name="arg8">The eighth parameter of the method that this delegate encapsulates.</param>
283     /// <param name="arg9">The ninth parameter of the method that this delegate encapsulates.</param>
284     /// <param name="arg10">The tenth parameter of the method that this delegate encapsulates.</param>
285     /// <param name="arg11">The eleventh parameter of the method that this delegate encapsulates.</param>
286     /// <param name="arg12">The twelfth parameter of the method that this delegate encapsulates.</param>
287     /// <returns>The return value of the method that this delegate encapsulates.</returns>
288     [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
289     public delegate TResult Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12);
290
291     /// <summary>
292     /// Encapsulates a method that has thirteen parameters and returns a value of the type specified by the TResult parameter.
293     /// </summary>
294     /// <typeparam name="T1">The type of the first parameter of the method that this delegate encapsulates.</typeparam>
295     /// <typeparam name="T2">The type of the second parameter of the method that this delegate encapsulates.</typeparam>
296     /// <typeparam name="T3">The type of the third parameter of the method that this delegate encapsulates.</typeparam>
297     /// <typeparam name="T4">The type of the fourth parameter of the method that this delegate encapsulates.</typeparam>
298     /// <typeparam name="T5">The type of the fifth parameter of the method that this delegate encapsulates.</typeparam>
299     /// <typeparam name="T6">The type of the sixth parameter of the method that this delegate encapsulates.</typeparam>
300     /// <typeparam name="T7">The type of the seventh parameter of the method that this delegate encapsulates.</typeparam>
301     /// <typeparam name="T8">The type of the eighth parameter of the method that this delegate encapsulates.</typeparam>
302     /// <typeparam name="T9">The type of the ninth parameter of the method that this delegate encapsulates.</typeparam>
303     /// <typeparam name="T10">The type of the tenth parameter of the method that this delegate encapsulates.</typeparam>
304     /// <typeparam name="T11">The type of the eleventh parameter of the method that this delegate encapsulates.</typeparam>
305     /// <typeparam name="T12">The type of the twelfth parameter of the method that this delegate encapsulates.</typeparam>
306     /// <typeparam name="T13">The type of the thirteenth parameter of the method that this delegate encapsulates.</typeparam>
307     /// <typeparam name="TResult">The type of the return value of the method that this delegate encapsulates.</typeparam>
308     /// <param name="arg1">The first parameter of the method that this delegate encapsulates.</param>
309     /// <param name="arg2">The second parameter of the method that this delegate encapsulates.</param>
310     /// <param name="arg3">The third parameter of the method that this delegate encapsulates.</param>
311     /// <param name="arg4">The fourth parameter of the method that this delegate encapsulates.</param>
312     /// <param name="arg5">The fifth parameter of the method that this delegate encapsulates.</param>
313     /// <param name="arg6">The sixth parameter of the method that this delegate encapsulates.</param>
314     /// <param name="arg7">The seventh parameter of the method that this delegate encapsulates.</param>
315     /// <param name="arg8">The eighth parameter of the method that this delegate encapsulates.</param>
316     /// <param name="arg9">The ninth parameter of the method that this delegate encapsulates.</param>
317     /// <param name="arg10">The tenth parameter of the method that this delegate encapsulates.</param>
318     /// <param name="arg11">The eleventh parameter of the method that this delegate encapsulates.</param>
319     /// <param name="arg12">The twelfth parameter of the method that this delegate encapsulates.</param>
320     /// <param name="arg13">The thirteenth parameter of the method that this delegate encapsulates.</param>
321     /// <returns>The return value of the method that this delegate encapsulates.</returns>
322     [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
323     public delegate TResult Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, TResult>(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);
324
325     /// <summary>
326     /// Encapsulates a method that has fourteen parameters and returns a value of the type specified by the TResult parameter.
327     /// </summary>
328     /// <typeparam name="T1">The type of the first parameter of the method that this delegate encapsulates.</typeparam>
329     /// <typeparam name="T2">The type of the second parameter of the method that this delegate encapsulates.</typeparam>
330     /// <typeparam name="T3">The type of the third parameter of the method that this delegate encapsulates.</typeparam>
331     /// <typeparam name="T4">The type of the fourth parameter of the method that this delegate encapsulates.</typeparam>
332     /// <typeparam name="T5">The type of the fifth parameter of the method that this delegate encapsulates.</typeparam>
333     /// <typeparam name="T6">The type of the sixth parameter of the method that this delegate encapsulates.</typeparam>
334     /// <typeparam name="T7">The type of the seventh parameter of the method that this delegate encapsulates.</typeparam>
335     /// <typeparam name="T8">The type of the eighth parameter of the method that this delegate encapsulates.</typeparam>
336     /// <typeparam name="T9">The type of the ninth parameter of the method that this delegate encapsulates.</typeparam>
337     /// <typeparam name="T10">The type of the tenth parameter of the method that this delegate encapsulates.</typeparam>
338     /// <typeparam name="T11">The type of the eleventh parameter of the method that this delegate encapsulates.</typeparam>
339     /// <typeparam name="T12">The type of the twelfth parameter of the method that this delegate encapsulates.</typeparam>
340     /// <typeparam name="T13">The type of the thirteenth parameter of the method that this delegate encapsulates.</typeparam>
341     /// <typeparam name="T14">The type of the fourteenth parameter of the method that this delegate encapsulates.</typeparam>
342     /// <typeparam name="TResult">The type of the return value of the method that this delegate encapsulates.</typeparam>
343     /// <param name="arg1">The first parameter of the method that this delegate encapsulates.</param>
344     /// <param name="arg2">The second parameter of the method that this delegate encapsulates.</param>
345     /// <param name="arg3">The third parameter of the method that this delegate encapsulates.</param>
346     /// <param name="arg4">The fourth parameter of the method that this delegate encapsulates.</param>
347     /// <param name="arg5">The fifth parameter of the method that this delegate encapsulates.</param>
348     /// <param name="arg6">The sixth parameter of the method that this delegate encapsulates.</param>
349     /// <param name="arg7">The seventh parameter of the method that this delegate encapsulates.</param>
350     /// <param name="arg8">The eighth parameter of the method that this delegate encapsulates.</param>
351     /// <param name="arg9">The ninth parameter of the method that this delegate encapsulates.</param>
352     /// <param name="arg10">The tenth parameter of the method that this delegate encapsulates.</param>
353     /// <param name="arg11">The eleventh parameter of the method that this delegate encapsulates.</param>
354     /// <param name="arg12">The twelfth parameter of the method that this delegate encapsulates.</param>
355     /// <param name="arg13">The thirteenth parameter of the method that this delegate encapsulates.</param>
356     /// <param name="arg14">The fourteenth parameter of the method that this delegate encapsulates.</param>
357     /// <returns>The return value of the method that this delegate encapsulates.</returns>
358     [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
359     public delegate TResult Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, TResult>(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);
360
361     /// <summary>
362     /// Encapsulates a method that has fifteen parameters and returns a value of the type specified by the TResult parameter.
363     /// </summary>
364     /// <typeparam name="T1">The type of the first parameter of the method that this delegate encapsulates.</typeparam>
365     /// <typeparam name="T2">The type of the second parameter of the method that this delegate encapsulates.</typeparam>
366     /// <typeparam name="T3">The type of the third parameter of the method that this delegate encapsulates.</typeparam>
367     /// <typeparam name="T4">The type of the fourth parameter of the method that this delegate encapsulates.</typeparam>
368     /// <typeparam name="T5">The type of the fifth parameter of the method that this delegate encapsulates.</typeparam>
369     /// <typeparam name="T6">The type of the sixth parameter of the method that this delegate encapsulates.</typeparam>
370     /// <typeparam name="T7">The type of the seventh parameter of the method that this delegate encapsulates.</typeparam>
371     /// <typeparam name="T8">The type of the eighth parameter of the method that this delegate encapsulates.</typeparam>
372     /// <typeparam name="T9">The type of the ninth parameter of the method that this delegate encapsulates.</typeparam>
373     /// <typeparam name="T10">The type of the tenth parameter of the method that this delegate encapsulates.</typeparam>
374     /// <typeparam name="T11">The type of the eleventh parameter of the method that this delegate encapsulates.</typeparam>
375     /// <typeparam name="T12">The type of the twelfth parameter of the method that this delegate encapsulates.</typeparam>
376     /// <typeparam name="T13">The type of the thirteenth parameter of the method that this delegate encapsulates.</typeparam>
377     /// <typeparam name="T14">The type of the fourteenth parameter of the method that this delegate encapsulates.</typeparam>
378     /// <typeparam name="T15">The type of the fifteenth parameter of the method that this delegate encapsulates.</typeparam>
379     /// <typeparam name="TResult">The type of the return value of the method that this delegate encapsulates.</typeparam>
380     /// <param name="arg1">The first parameter of the method that this delegate encapsulates.</param>
381     /// <param name="arg2">The second parameter of the method that this delegate encapsulates.</param>
382     /// <param name="arg3">The third parameter of the method that this delegate encapsulates.</param>
383     /// <param name="arg4">The fourth parameter of the method that this delegate encapsulates.</param>
384     /// <param name="arg5">The fifth parameter of the method that this delegate encapsulates.</param>
385     /// <param name="arg6">The sixth parameter of the method that this delegate encapsulates.</param>
386     /// <param name="arg7">The seventh parameter of the method that this delegate encapsulates.</param>
387     /// <param name="arg8">The eighth parameter of the method that this delegate encapsulates.</param>
388     /// <param name="arg9">The ninth parameter of the method that this delegate encapsulates.</param>
389     /// <param name="arg10">The tenth parameter of the method that this delegate encapsulates.</param>
390     /// <param name="arg11">The eleventh parameter of the method that this delegate encapsulates.</param>
391     /// <param name="arg12">The twelfth parameter of the method that this delegate encapsulates.</param>
392     /// <param name="arg13">The thirteenth parameter of the method that this delegate encapsulates.</param>
393     /// <param name="arg14">The fourteenth parameter of the method that this delegate encapsulates.</param>
394     /// <param name="arg15">The fifteenth parameter of the method that this delegate encapsulates.</param>
395     /// <returns>The return value of the method that this delegate encapsulates.</returns>
396     [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
397     public delegate TResult Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, TResult>(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);
398
399     /// <summary>
400     /// Encapsulates a method that has sixteen parameters and returns a value of the type specified by the TResult parameter.
401     /// </summary>
402     /// <typeparam name="T1">The type of the first parameter of the method that this delegate encapsulates.</typeparam>
403     /// <typeparam name="T2">The type of the second parameter of the method that this delegate encapsulates.</typeparam>
404     /// <typeparam name="T3">The type of the third parameter of the method that this delegate encapsulates.</typeparam>
405     /// <typeparam name="T4">The type of the fourth parameter of the method that this delegate encapsulates.</typeparam>
406     /// <typeparam name="T5">The type of the fifth parameter of the method that this delegate encapsulates.</typeparam>
407     /// <typeparam name="T6">The type of the sixth parameter of the method that this delegate encapsulates.</typeparam>
408     /// <typeparam name="T7">The type of the seventh parameter of the method that this delegate encapsulates.</typeparam>
409     /// <typeparam name="T8">The type of the eighth parameter of the method that this delegate encapsulates.</typeparam>
410     /// <typeparam name="T9">The type of the ninth parameter of the method that this delegate encapsulates.</typeparam>
411     /// <typeparam name="T10">The type of the tenth parameter of the method that this delegate encapsulates.</typeparam>
412     /// <typeparam name="T11">The type of the eleventh parameter of the method that this delegate encapsulates.</typeparam>
413     /// <typeparam name="T12">The type of the twelfth parameter of the method that this delegate encapsulates.</typeparam>
414     /// <typeparam name="T13">The type of the thirteenth parameter of the method that this delegate encapsulates.</typeparam>
415     /// <typeparam name="T14">The type of the fourteenth parameter of the method that this delegate encapsulates.</typeparam>
416     /// <typeparam name="T15">The type of the fifteenth parameter of the method that this delegate encapsulates.</typeparam>
417     /// <typeparam name="T16">The type of the sixteenth parameter of the method that this delegate encapsulates.</typeparam>
418     /// <typeparam name="TResult">The type of the return value of the method that this delegate encapsulates.</typeparam>
419     /// <param name="arg1">The first parameter of the method that this delegate encapsulates.</param>
420     /// <param name="arg2">The second parameter of the method that this delegate encapsulates.</param>
421     /// <param name="arg3">The third parameter of the method that this delegate encapsulates.</param>
422     /// <param name="arg4">The fourth parameter of the method that this delegate encapsulates.</param>
423     /// <param name="arg5">The fifth parameter of the method that this delegate encapsulates.</param>
424     /// <param name="arg6">The sixth parameter of the method that this delegate encapsulates.</param>
425     /// <param name="arg7">The seventh parameter of the method that this delegate encapsulates.</param>
426     /// <param name="arg8">The eighth parameter of the method that this delegate encapsulates.</param>
427     /// <param name="arg9">The ninth parameter of the method that this delegate encapsulates.</param>
428     /// <param name="arg10">The tenth parameter of the method that this delegate encapsulates.</param>
429     /// <param name="arg11">The eleventh parameter of the method that this delegate encapsulates.</param>
430     /// <param name="arg12">The twelfth parameter of the method that this delegate encapsulates.</param>
431     /// <param name="arg13">The thirteenth parameter of the method that this delegate encapsulates.</param>
432     /// <param name="arg14">The fourteenth parameter of the method that this delegate encapsulates.</param>
433     /// <param name="arg15">The fifteenth parameter of the method that this delegate encapsulates.</param>
434     /// <param name="arg16">The sixteenth parameter of the method that this delegate encapsulates.</param>
435     /// <returns>The return value of the method that this delegate encapsulates.</returns>
436     [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
437     public delegate TResult Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, TResult>(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);
438 #else
439
440     /// <summary>
441     /// Encapsulates a method that has nine parameters and returns a value of the type specified by the TResult parameter.
442     /// </summary>
443     /// <typeparam name="T1">The type of the first parameter of the method that this delegate encapsulates.</typeparam>
444     /// <typeparam name="T2">The type of the second parameter of the method that this delegate encapsulates.</typeparam>
445     /// <typeparam name="T3">The type of the third parameter of the method that this delegate encapsulates.</typeparam>
446     /// <typeparam name="T4">The type of the fourth parameter of the method that this delegate encapsulates.</typeparam>
447     /// <typeparam name="T5">The type of the fifth parameter of the method that this delegate encapsulates.</typeparam>
448     /// <typeparam name="T6">The type of the sixth parameter of the method that this delegate encapsulates.</typeparam>
449     /// <typeparam name="T7">The type of the seventh parameter of the method that this delegate encapsulates.</typeparam>
450     /// <typeparam name="T8">The type of the eighth parameter of the method that this delegate encapsulates.</typeparam>
451     /// <typeparam name="T9">The type of the ninth parameter of the method that this delegate encapsulates.</typeparam>
452     /// <typeparam name="TResult">The type of the return value of the method that this delegate encapsulates.</typeparam>
453     /// <param name="arg1">The first parameter of the method that this delegate encapsulates.</param>
454     /// <param name="arg2">The second parameter of the method that this delegate encapsulates.</param>
455     /// <param name="arg3">The third parameter of the method that this delegate encapsulates.</param>
456     /// <param name="arg4">The fourth parameter of the method that this delegate encapsulates.</param>
457     /// <param name="arg5">The fifth parameter of the method that this delegate encapsulates.</param>
458     /// <param name="arg6">The sixth parameter of the method that this delegate encapsulates.</param>
459     /// <param name="arg7">The seventh parameter of the method that this delegate encapsulates.</param>
460     /// <param name="arg8">The eighth parameter of the method that this delegate encapsulates.</param>
461     /// <param name="arg9">The ninth parameter of the method that this delegate encapsulates.</param>
462     /// <returns>The return value of the method that this delegate encapsulates.</returns>
463     [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
464     public delegate TResult Func<in T1, in T2, in T3, in T4, in T5, in T6, in T7, in T8, in T9, out TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9);
465
466     /// <summary>
467     /// Encapsulates a method that has ten parameters and returns a value of the type specified by the TResult parameter.
468     /// </summary>
469     /// <typeparam name="T1">The type of the first parameter of the method that this delegate encapsulates.</typeparam>
470     /// <typeparam name="T2">The type of the second parameter of the method that this delegate encapsulates.</typeparam>
471     /// <typeparam name="T3">The type of the third parameter of the method that this delegate encapsulates.</typeparam>
472     /// <typeparam name="T4">The type of the fourth parameter of the method that this delegate encapsulates.</typeparam>
473     /// <typeparam name="T5">The type of the fifth parameter of the method that this delegate encapsulates.</typeparam>
474     /// <typeparam name="T6">The type of the sixth parameter of the method that this delegate encapsulates.</typeparam>
475     /// <typeparam name="T7">The type of the seventh parameter of the method that this delegate encapsulates.</typeparam>
476     /// <typeparam name="T8">The type of the eighth parameter of the method that this delegate encapsulates.</typeparam>
477     /// <typeparam name="T9">The type of the ninth parameter of the method that this delegate encapsulates.</typeparam>
478     /// <typeparam name="T10">The type of the tenth parameter of the method that this delegate encapsulates.</typeparam>
479     /// <typeparam name="TResult">The type of the return value of the method that this delegate encapsulates.</typeparam>
480     /// <param name="arg1">The first parameter of the method that this delegate encapsulates.</param>
481     /// <param name="arg2">The second parameter of the method that this delegate encapsulates.</param>
482     /// <param name="arg3">The third parameter of the method that this delegate encapsulates.</param>
483     /// <param name="arg4">The fourth parameter of the method that this delegate encapsulates.</param>
484     /// <param name="arg5">The fifth parameter of the method that this delegate encapsulates.</param>
485     /// <param name="arg6">The sixth parameter of the method that this delegate encapsulates.</param>
486     /// <param name="arg7">The seventh parameter of the method that this delegate encapsulates.</param>
487     /// <param name="arg8">The eighth parameter of the method that this delegate encapsulates.</param>
488     /// <param name="arg9">The ninth parameter of the method that this delegate encapsulates.</param>
489     /// <param name="arg10">The tenth parameter of the method that this delegate encapsulates.</param>
490     /// <returns>The return value of the method that this delegate encapsulates.</returns>
491     [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
492     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>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10);
493
494     /// <summary>
495     /// Encapsulates a method that has eleven parameters and returns a value of the type specified by the TResult parameter.
496     /// </summary>
497     /// <typeparam name="T1">The type of the first parameter of the method that this delegate encapsulates.</typeparam>
498     /// <typeparam name="T2">The type of the second parameter of the method that this delegate encapsulates.</typeparam>
499     /// <typeparam name="T3">The type of the third parameter of the method that this delegate encapsulates.</typeparam>
500     /// <typeparam name="T4">The type of the fourth parameter of the method that this delegate encapsulates.</typeparam>
501     /// <typeparam name="T5">The type of the fifth parameter of the method that this delegate encapsulates.</typeparam>
502     /// <typeparam name="T6">The type of the sixth parameter of the method that this delegate encapsulates.</typeparam>
503     /// <typeparam name="T7">The type of the seventh parameter of the method that this delegate encapsulates.</typeparam>
504     /// <typeparam name="T8">The type of the eighth parameter of the method that this delegate encapsulates.</typeparam>
505     /// <typeparam name="T9">The type of the ninth parameter of the method that this delegate encapsulates.</typeparam>
506     /// <typeparam name="T10">The type of the tenth parameter of the method that this delegate encapsulates.</typeparam>
507     /// <typeparam name="T11">The type of the eleventh parameter of the method that this delegate encapsulates.</typeparam>
508     /// <typeparam name="TResult">The type of the return value of the method that this delegate encapsulates.</typeparam>
509     /// <param name="arg1">The first parameter of the method that this delegate encapsulates.</param>
510     /// <param name="arg2">The second parameter of the method that this delegate encapsulates.</param>
511     /// <param name="arg3">The third parameter of the method that this delegate encapsulates.</param>
512     /// <param name="arg4">The fourth parameter of the method that this delegate encapsulates.</param>
513     /// <param name="arg5">The fifth parameter of the method that this delegate encapsulates.</param>
514     /// <param name="arg6">The sixth parameter of the method that this delegate encapsulates.</param>
515     /// <param name="arg7">The seventh parameter of the method that this delegate encapsulates.</param>
516     /// <param name="arg8">The eighth parameter of the method that this delegate encapsulates.</param>
517     /// <param name="arg9">The ninth parameter of the method that this delegate encapsulates.</param>
518     /// <param name="arg10">The tenth parameter of the method that this delegate encapsulates.</param>
519     /// <param name="arg11">The eleventh parameter of the method that this delegate encapsulates.</param>
520     /// <returns>The return value of the method that this delegate encapsulates.</returns>
521     [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
522     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>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11);
523
524     /// <summary>
525     /// Encapsulates a method that has twelve parameters and returns a value of the type specified by the TResult parameter.
526     /// </summary>
527     /// <typeparam name="T1">The type of the first parameter of the method that this delegate encapsulates.</typeparam>
528     /// <typeparam name="T2">The type of the second parameter of the method that this delegate encapsulates.</typeparam>
529     /// <typeparam name="T3">The type of the third parameter of the method that this delegate encapsulates.</typeparam>
530     /// <typeparam name="T4">The type of the fourth parameter of the method that this delegate encapsulates.</typeparam>
531     /// <typeparam name="T5">The type of the fifth parameter of the method that this delegate encapsulates.</typeparam>
532     /// <typeparam name="T6">The type of the sixth parameter of the method that this delegate encapsulates.</typeparam>
533     /// <typeparam name="T7">The type of the seventh parameter of the method that this delegate encapsulates.</typeparam>
534     /// <typeparam name="T8">The type of the eighth parameter of the method that this delegate encapsulates.</typeparam>
535     /// <typeparam name="T9">The type of the ninth parameter of the method that this delegate encapsulates.</typeparam>
536     /// <typeparam name="T10">The type of the tenth parameter of the method that this delegate encapsulates.</typeparam>
537     /// <typeparam name="T11">The type of the eleventh parameter of the method that this delegate encapsulates.</typeparam>
538     /// <typeparam name="T12">The type of the twelfth parameter of the method that this delegate encapsulates.</typeparam>
539     /// <typeparam name="TResult">The type of the return value of the method that this delegate encapsulates.</typeparam>
540     /// <param name="arg1">The first parameter of the method that this delegate encapsulates.</param>
541     /// <param name="arg2">The second parameter of the method that this delegate encapsulates.</param>
542     /// <param name="arg3">The third parameter of the method that this delegate encapsulates.</param>
543     /// <param name="arg4">The fourth parameter of the method that this delegate encapsulates.</param>
544     /// <param name="arg5">The fifth parameter of the method that this delegate encapsulates.</param>
545     /// <param name="arg6">The sixth parameter of the method that this delegate encapsulates.</param>
546     /// <param name="arg7">The seventh parameter of the method that this delegate encapsulates.</param>
547     /// <param name="arg8">The eighth parameter of the method that this delegate encapsulates.</param>
548     /// <param name="arg9">The ninth parameter of the method that this delegate encapsulates.</param>
549     /// <param name="arg10">The tenth parameter of the method that this delegate encapsulates.</param>
550     /// <param name="arg11">The eleventh parameter of the method that this delegate encapsulates.</param>
551     /// <param name="arg12">The twelfth parameter of the method that this delegate encapsulates.</param>
552     /// <returns>The return value of the method that this delegate encapsulates.</returns>
553     [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
554     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>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12);
555
556     /// <summary>
557     /// Encapsulates a method that has thirteen parameters and returns a value of the type specified by the TResult parameter.
558     /// </summary>
559     /// <typeparam name="T1">The type of the first parameter of the method that this delegate encapsulates.</typeparam>
560     /// <typeparam name="T2">The type of the second parameter of the method that this delegate encapsulates.</typeparam>
561     /// <typeparam name="T3">The type of the third parameter of the method that this delegate encapsulates.</typeparam>
562     /// <typeparam name="T4">The type of the fourth parameter of the method that this delegate encapsulates.</typeparam>
563     /// <typeparam name="T5">The type of the fifth parameter of the method that this delegate encapsulates.</typeparam>
564     /// <typeparam name="T6">The type of the sixth parameter of the method that this delegate encapsulates.</typeparam>
565     /// <typeparam name="T7">The type of the seventh parameter of the method that this delegate encapsulates.</typeparam>
566     /// <typeparam name="T8">The type of the eighth parameter of the method that this delegate encapsulates.</typeparam>
567     /// <typeparam name="T9">The type of the ninth parameter of the method that this delegate encapsulates.</typeparam>
568     /// <typeparam name="T10">The type of the tenth parameter of the method that this delegate encapsulates.</typeparam>
569     /// <typeparam name="T11">The type of the eleventh parameter of the method that this delegate encapsulates.</typeparam>
570     /// <typeparam name="T12">The type of the twelfth parameter of the method that this delegate encapsulates.</typeparam>
571     /// <typeparam name="T13">The type of the thirteenth parameter of the method that this delegate encapsulates.</typeparam>
572     /// <typeparam name="TResult">The type of the return value of the method that this delegate encapsulates.</typeparam>
573     /// <param name="arg1">The first parameter of the method that this delegate encapsulates.</param>
574     /// <param name="arg2">The second parameter of the method that this delegate encapsulates.</param>
575     /// <param name="arg3">The third parameter of the method that this delegate encapsulates.</param>
576     /// <param name="arg4">The fourth parameter of the method that this delegate encapsulates.</param>
577     /// <param name="arg5">The fifth parameter of the method that this delegate encapsulates.</param>
578     /// <param name="arg6">The sixth parameter of the method that this delegate encapsulates.</param>
579     /// <param name="arg7">The seventh parameter of the method that this delegate encapsulates.</param>
580     /// <param name="arg8">The eighth parameter of the method that this delegate encapsulates.</param>
581     /// <param name="arg9">The ninth parameter of the method that this delegate encapsulates.</param>
582     /// <param name="arg10">The tenth parameter of the method that this delegate encapsulates.</param>
583     /// <param name="arg11">The eleventh parameter of the method that this delegate encapsulates.</param>
584     /// <param name="arg12">The twelfth parameter of the method that this delegate encapsulates.</param>
585     /// <param name="arg13">The thirteenth parameter of the method that this delegate encapsulates.</param>
586     /// <returns>The return value of the method that this delegate encapsulates.</returns>
587     [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
588     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>(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);
589
590     /// <summary>
591     /// Encapsulates a method that has fourteen parameters and returns a value of the type specified by the TResult parameter.
592     /// </summary>
593     /// <typeparam name="T1">The type of the first parameter of the method that this delegate encapsulates.</typeparam>
594     /// <typeparam name="T2">The type of the second parameter of the method that this delegate encapsulates.</typeparam>
595     /// <typeparam name="T3">The type of the third parameter of the method that this delegate encapsulates.</typeparam>
596     /// <typeparam name="T4">The type of the fourth parameter of the method that this delegate encapsulates.</typeparam>
597     /// <typeparam name="T5">The type of the fifth parameter of the method that this delegate encapsulates.</typeparam>
598     /// <typeparam name="T6">The type of the sixth parameter of the method that this delegate encapsulates.</typeparam>
599     /// <typeparam name="T7">The type of the seventh parameter of the method that this delegate encapsulates.</typeparam>
600     /// <typeparam name="T8">The type of the eighth parameter of the method that this delegate encapsulates.</typeparam>
601     /// <typeparam name="T9">The type of the ninth parameter of the method that this delegate encapsulates.</typeparam>
602     /// <typeparam name="T10">The type of the tenth parameter of the method that this delegate encapsulates.</typeparam>
603     /// <typeparam name="T11">The type of the eleventh parameter of the method that this delegate encapsulates.</typeparam>
604     /// <typeparam name="T12">The type of the twelfth parameter of the method that this delegate encapsulates.</typeparam>
605     /// <typeparam name="T13">The type of the thirteenth parameter of the method that this delegate encapsulates.</typeparam>
606     /// <typeparam name="T14">The type of the fourteenth parameter of the method that this delegate encapsulates.</typeparam>
607     /// <typeparam name="TResult">The type of the return value of the method that this delegate encapsulates.</typeparam>
608     /// <param name="arg1">The first parameter of the method that this delegate encapsulates.</param>
609     /// <param name="arg2">The second parameter of the method that this delegate encapsulates.</param>
610     /// <param name="arg3">The third parameter of the method that this delegate encapsulates.</param>
611     /// <param name="arg4">The fourth parameter of the method that this delegate encapsulates.</param>
612     /// <param name="arg5">The fifth parameter of the method that this delegate encapsulates.</param>
613     /// <param name="arg6">The sixth parameter of the method that this delegate encapsulates.</param>
614     /// <param name="arg7">The seventh parameter of the method that this delegate encapsulates.</param>
615     /// <param name="arg8">The eighth parameter of the method that this delegate encapsulates.</param>
616     /// <param name="arg9">The ninth parameter of the method that this delegate encapsulates.</param>
617     /// <param name="arg10">The tenth parameter of the method that this delegate encapsulates.</param>
618     /// <param name="arg11">The eleventh parameter of the method that this delegate encapsulates.</param>
619     /// <param name="arg12">The twelfth parameter of the method that this delegate encapsulates.</param>
620     /// <param name="arg13">The thirteenth parameter of the method that this delegate encapsulates.</param>
621     /// <param name="arg14">The fourteenth parameter of the method that this delegate encapsulates.</param>
622     /// <returns>The return value of the method that this delegate encapsulates.</returns>
623     [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
624     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>(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);
625
626     /// <summary>
627     /// Encapsulates a method that has fifteen parameters and returns a value of the type specified by the TResult parameter.
628     /// </summary>
629     /// <typeparam name="T1">The type of the first parameter of the method that this delegate encapsulates.</typeparam>
630     /// <typeparam name="T2">The type of the second parameter of the method that this delegate encapsulates.</typeparam>
631     /// <typeparam name="T3">The type of the third parameter of the method that this delegate encapsulates.</typeparam>
632     /// <typeparam name="T4">The type of the fourth parameter of the method that this delegate encapsulates.</typeparam>
633     /// <typeparam name="T5">The type of the fifth parameter of the method that this delegate encapsulates.</typeparam>
634     /// <typeparam name="T6">The type of the sixth parameter of the method that this delegate encapsulates.</typeparam>
635     /// <typeparam name="T7">The type of the seventh parameter of the method that this delegate encapsulates.</typeparam>
636     /// <typeparam name="T8">The type of the eighth parameter of the method that this delegate encapsulates.</typeparam>
637     /// <typeparam name="T9">The type of the ninth parameter of the method that this delegate encapsulates.</typeparam>
638     /// <typeparam name="T10">The type of the tenth parameter of the method that this delegate encapsulates.</typeparam>
639     /// <typeparam name="T11">The type of the eleventh parameter of the method that this delegate encapsulates.</typeparam>
640     /// <typeparam name="T12">The type of the twelfth parameter of the method that this delegate encapsulates.</typeparam>
641     /// <typeparam name="T13">The type of the thirteenth parameter of the method that this delegate encapsulates.</typeparam>
642     /// <typeparam name="T14">The type of the fourteenth parameter of the method that this delegate encapsulates.</typeparam>
643     /// <typeparam name="T15">The type of the fifteenth parameter of the method that this delegate encapsulates.</typeparam>
644     /// <typeparam name="TResult">The type of the return value of the method that this delegate encapsulates.</typeparam>
645     /// <param name="arg1">The first parameter of the method that this delegate encapsulates.</param>
646     /// <param name="arg2">The second parameter of the method that this delegate encapsulates.</param>
647     /// <param name="arg3">The third parameter of the method that this delegate encapsulates.</param>
648     /// <param name="arg4">The fourth parameter of the method that this delegate encapsulates.</param>
649     /// <param name="arg5">The fifth parameter of the method that this delegate encapsulates.</param>
650     /// <param name="arg6">The sixth parameter of the method that this delegate encapsulates.</param>
651     /// <param name="arg7">The seventh parameter of the method that this delegate encapsulates.</param>
652     /// <param name="arg8">The eighth parameter of the method that this delegate encapsulates.</param>
653     /// <param name="arg9">The ninth parameter of the method that this delegate encapsulates.</param>
654     /// <param name="arg10">The tenth parameter of the method that this delegate encapsulates.</param>
655     /// <param name="arg11">The eleventh parameter of the method that this delegate encapsulates.</param>
656     /// <param name="arg12">The twelfth parameter of the method that this delegate encapsulates.</param>
657     /// <param name="arg13">The thirteenth parameter of the method that this delegate encapsulates.</param>
658     /// <param name="arg14">The fourteenth parameter of the method that this delegate encapsulates.</param>
659     /// <param name="arg15">The fifteenth parameter of the method that this delegate encapsulates.</param>
660     /// <returns>The return value of the method that this delegate encapsulates.</returns>
661     [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
662     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>(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);
663
664     /// <summary>
665     /// Encapsulates a method that has sixteen parameters and returns a value of the type specified by the TResult parameter.
666     /// </summary>
667     /// <typeparam name="T1">The type of the first parameter of the method that this delegate encapsulates.</typeparam>
668     /// <typeparam name="T2">The type of the second parameter of the method that this delegate encapsulates.</typeparam>
669     /// <typeparam name="T3">The type of the third parameter of the method that this delegate encapsulates.</typeparam>
670     /// <typeparam name="T4">The type of the fourth parameter of the method that this delegate encapsulates.</typeparam>
671     /// <typeparam name="T5">The type of the fifth parameter of the method that this delegate encapsulates.</typeparam>
672     /// <typeparam name="T6">The type of the sixth parameter of the method that this delegate encapsulates.</typeparam>
673     /// <typeparam name="T7">The type of the seventh parameter of the method that this delegate encapsulates.</typeparam>
674     /// <typeparam name="T8">The type of the eighth parameter of the method that this delegate encapsulates.</typeparam>
675     /// <typeparam name="T9">The type of the ninth parameter of the method that this delegate encapsulates.</typeparam>
676     /// <typeparam name="T10">The type of the tenth parameter of the method that this delegate encapsulates.</typeparam>
677     /// <typeparam name="T11">The type of the eleventh parameter of the method that this delegate encapsulates.</typeparam>
678     /// <typeparam name="T12">The type of the twelfth parameter of the method that this delegate encapsulates.</typeparam>
679     /// <typeparam name="T13">The type of the thirteenth parameter of the method that this delegate encapsulates.</typeparam>
680     /// <typeparam name="T14">The type of the fourteenth parameter of the method that this delegate encapsulates.</typeparam>
681     /// <typeparam name="T15">The type of the fifteenth parameter of the method that this delegate encapsulates.</typeparam>
682     /// <typeparam name="T16">The type of the sixteenth parameter of the method that this delegate encapsulates.</typeparam>
683     /// <typeparam name="TResult">The type of the return value of the method that this delegate encapsulates.</typeparam>
684     /// <param name="arg1">The first parameter of the method that this delegate encapsulates.</param>
685     /// <param name="arg2">The second parameter of the method that this delegate encapsulates.</param>
686     /// <param name="arg3">The third parameter of the method that this delegate encapsulates.</param>
687     /// <param name="arg4">The fourth parameter of the method that this delegate encapsulates.</param>
688     /// <param name="arg5">The fifth parameter of the method that this delegate encapsulates.</param>
689     /// <param name="arg6">The sixth parameter of the method that this delegate encapsulates.</param>
690     /// <param name="arg7">The seventh parameter of the method that this delegate encapsulates.</param>
691     /// <param name="arg8">The eighth parameter of the method that this delegate encapsulates.</param>
692     /// <param name="arg9">The ninth parameter of the method that this delegate encapsulates.</param>
693     /// <param name="arg10">The tenth parameter of the method that this delegate encapsulates.</param>
694     /// <param name="arg11">The eleventh parameter of the method that this delegate encapsulates.</param>
695     /// <param name="arg12">The twelfth parameter of the method that this delegate encapsulates.</param>
696     /// <param name="arg13">The thirteenth parameter of the method that this delegate encapsulates.</param>
697     /// <param name="arg14">The fourteenth parameter of the method that this delegate encapsulates.</param>
698     /// <param name="arg15">The fifteenth parameter of the method that this delegate encapsulates.</param>
699     /// <param name="arg16">The sixteenth parameter of the method that this delegate encapsulates.</param>
700     /// <returns>The return value of the method that this delegate encapsulates.</returns>
701     [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
702     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>(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);
703
704 #endif
705
706     // *** END GENERATED CODE ***
707
708     #endregion
709 }