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