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

◆ CreateDefaultComparer()

static object System.Collections.Generic.ComparerHelpers.CreateDefaultComparer ( Type type)
inlinestaticpackage

Definition at line 5 of file ComparerHelpers.cs.

6 {
7 object obj = null;
8 RuntimeType runtimeType = (RuntimeType)type;
9 if (typeof(IComparable<>).MakeGenericType(type).IsAssignableFrom(type))
10 {
11 obj = RuntimeTypeHandle.CreateInstanceForAnotherGenericParameter((RuntimeType)typeof(GenericComparer<int>), runtimeType);
12 }
13 else if (type.IsGenericType)
14 {
15 if (type.GetGenericTypeDefinition() == typeof(Nullable<>))
16 {
17 obj = TryCreateNullableComparer(runtimeType);
18 }
19 }
20 else if (type.IsEnum)
21 {
22 obj = TryCreateEnumComparer(runtimeType);
23 }
24 return obj ?? RuntimeTypeHandle.CreateInstanceForAnotherGenericParameter((RuntimeType)typeof(ObjectComparer<object>), runtimeType);
25 }
static object TryCreateEnumComparer(RuntimeType enumType)
static object TryCreateNullableComparer(RuntimeType nullableType)

References System.RuntimeTypeHandle.CreateInstanceForAnotherGenericParameter(), System.obj, System.Collections.Generic.ComparerHelpers.TryCreateEnumComparer(), System.Collections.Generic.ComparerHelpers.TryCreateNullableComparer(), and System.type.