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

◆ Make()

static ParameterExpression System.Linq.Expressions.ParameterExpression.Make ( Type type,
string name,
bool isByRef )
inlinestaticpackageinherited

Definition at line 22 of file ParameterExpression.cs.

23 {
24 if (isByRef)
25 {
26 return new ByRefParameterExpression(type, name);
27 }
28 if (!type.IsEnum)
29 {
30 switch (type.GetTypeCode())
31 {
32 case TypeCode.Boolean:
33 return new PrimitiveParameterExpression<bool>(name);
34 case TypeCode.Byte:
35 return new PrimitiveParameterExpression<byte>(name);
36 case TypeCode.Char:
37 return new PrimitiveParameterExpression<char>(name);
38 case TypeCode.DateTime:
39 return new PrimitiveParameterExpression<DateTime>(name);
40 case TypeCode.Decimal:
41 return new PrimitiveParameterExpression<decimal>(name);
42 case TypeCode.Double:
43 return new PrimitiveParameterExpression<double>(name);
44 case TypeCode.Int16:
45 return new PrimitiveParameterExpression<short>(name);
46 case TypeCode.Int32:
47 return new PrimitiveParameterExpression<int>(name);
48 case TypeCode.Int64:
49 return new PrimitiveParameterExpression<long>(name);
50 case TypeCode.Object:
51 if (type == typeof(object))
52 {
53 return new ParameterExpression(name);
54 }
55 if (type == typeof(Exception))
56 {
57 return new PrimitiveParameterExpression<Exception>(name);
58 }
59 if (type == typeof(object[]))
60 {
61 return new PrimitiveParameterExpression<object[]>(name);
62 }
63 break;
64 case TypeCode.SByte:
65 return new PrimitiveParameterExpression<sbyte>(name);
66 case TypeCode.Single:
67 return new PrimitiveParameterExpression<float>(name);
68 case TypeCode.String:
69 return new PrimitiveParameterExpression<string>(name);
70 case TypeCode.UInt16:
71 return new PrimitiveParameterExpression<ushort>(name);
72 case TypeCode.UInt32:
73 return new PrimitiveParameterExpression<uint>(name);
74 case TypeCode.UInt64:
75 return new PrimitiveParameterExpression<ulong>(name);
76 }
77 }
78 return new TypedParameterExpression(type, name);
79 }

References System.Linq.Expressions.ParameterExpression.ParameterExpression(), and System.type.

Referenced by System.Linq.Expressions.Expression< TDelegate >.Parameter(), System.Linq.Expressions.Compiler.StackSpiller.TempMaker.Temp(), and System.Linq.Expressions.Expression< TDelegate >.Variable().