Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ FastCreate()

static CallInstruction System.Linq.Expressions.Interpreter.CallInstruction.FastCreate ( MethodInfo target,
ParameterInfo[] pi )
inlinestaticprivateinherited

Definition at line 212 of file CallInstruction.cs.

213 {
215 if (type == null)
216 {
217 return new ActionCallInstruction(target);
218 }
219 if (type.IsEnum)
220 {
221 return SlowCreate(target, pi);
222 }
223 switch (type.GetTypeCode())
224 {
225 case TypeCode.Object:
226 if (!(type != typeof(object)) || (!IndexIsNotReturnType(0, target, pi) && !type.IsValueType))
227 {
228 return FastCreate<object>(target, pi);
229 }
230 break;
231 case TypeCode.Int16:
232 return FastCreate<short>(target, pi);
233 case TypeCode.Int32:
234 return FastCreate<int>(target, pi);
235 case TypeCode.Int64:
236 return FastCreate<long>(target, pi);
237 case TypeCode.Boolean:
238 return FastCreate<bool>(target, pi);
239 case TypeCode.Char:
240 return FastCreate<char>(target, pi);
241 case TypeCode.Byte:
242 return FastCreate<byte>(target, pi);
243 case TypeCode.Decimal:
244 return FastCreate<decimal>(target, pi);
245 case TypeCode.DateTime:
246 return FastCreate<DateTime>(target, pi);
247 case TypeCode.Double:
248 return FastCreate<double>(target, pi);
249 case TypeCode.Single:
250 return FastCreate<float>(target, pi);
251 case TypeCode.UInt16:
252 return FastCreate<ushort>(target, pi);
253 case TypeCode.UInt32:
254 return FastCreate<uint>(target, pi);
255 case TypeCode.UInt64:
256 return FastCreate<ulong>(target, pi);
257 case TypeCode.String:
258 return FastCreate<string>(target, pi);
259 case TypeCode.SByte:
260 return FastCreate<sbyte>(target, pi);
261 }
262 return SlowCreate(target, pi);
263 }
static CallInstruction SlowCreate(MethodInfo info, ParameterInfo[] pis)
static Type TryGetParameterOrReturnType(MethodInfo target, ParameterInfo[] pi, int index)
static bool IndexIsNotReturnType(int index, MethodInfo target, ParameterInfo[] pi)

References System.Linq.Expressions.Interpreter.CallInstruction.IndexIsNotReturnType(), System.Linq.Expressions.Interpreter.CallInstruction.SlowCreate(), System.Linq.Expressions.Interpreter.CallInstruction.TryGetParameterOrReturnType(), and System.type.

Referenced by System.Linq.Expressions.Interpreter.CallInstruction.Create().