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

◆ CompareTo() [1/2]

int System.Enum.CompareTo ( object? target)
inline

Implements System.IComparable< in T >.

Definition at line 1036 of file Enum.cs.

1037 {
1038 if (target == this)
1039 {
1040 return 0;
1041 }
1042 if (target == null)
1043 {
1044 return 1;
1045 }
1046 if (GetType() != target.GetType())
1047 {
1048 throw new ArgumentException(SR.Format(SR.Arg_EnumAndObjectMustBeSameType, target.GetType(), GetType()));
1049 }
1050 ref byte rawData = ref this.GetRawData();
1051 ref byte rawData2 = ref target.GetRawData();
1052 switch (InternalGetCorElementType())
1053 {
1054 case CorElementType.ELEMENT_TYPE_I1:
1055 return Unsafe.As<byte, sbyte>(ref rawData).CompareTo(Unsafe.As<byte, sbyte>(ref rawData2));
1056 case CorElementType.ELEMENT_TYPE_BOOLEAN:
1057 case CorElementType.ELEMENT_TYPE_U1:
1058 return rawData.CompareTo(rawData2);
1059 case CorElementType.ELEMENT_TYPE_I2:
1060 return Unsafe.As<byte, short>(ref rawData).CompareTo(Unsafe.As<byte, short>(ref rawData2));
1061 case CorElementType.ELEMENT_TYPE_CHAR:
1062 case CorElementType.ELEMENT_TYPE_U2:
1063 return Unsafe.As<byte, ushort>(ref rawData).CompareTo(Unsafe.As<byte, ushort>(ref rawData2));
1064 case CorElementType.ELEMENT_TYPE_I4:
1065 return Unsafe.As<byte, int>(ref rawData).CompareTo(Unsafe.As<byte, int>(ref rawData2));
1066 case CorElementType.ELEMENT_TYPE_U4:
1067 return Unsafe.As<byte, uint>(ref rawData).CompareTo(Unsafe.As<byte, uint>(ref rawData2));
1068 case CorElementType.ELEMENT_TYPE_I8:
1069 case CorElementType.ELEMENT_TYPE_I:
1070 return Unsafe.As<byte, long>(ref rawData).CompareTo(Unsafe.As<byte, long>(ref rawData2));
1071 case CorElementType.ELEMENT_TYPE_U8:
1072 case CorElementType.ELEMENT_TYPE_U:
1073 return Unsafe.As<byte, ulong>(ref rawData).CompareTo(Unsafe.As<byte, ulong>(ref rawData2));
1074 case CorElementType.ELEMENT_TYPE_R4:
1075 return Unsafe.As<byte, float>(ref rawData).CompareTo(Unsafe.As<byte, float>(ref rawData2));
1076 case CorElementType.ELEMENT_TYPE_R8:
1077 return Unsafe.As<byte, double>(ref rawData).CompareTo(Unsafe.As<byte, double>(ref rawData2));
1078 default:
1079 throw new InvalidOperationException(SR.InvalidOperation_UnknownEnumType);
1080 }
1081 }
int CompareTo(object? target)
Definition Enum.cs:1036
CorElementType InternalGetCorElementType()

References System.SR.Arg_EnumAndObjectMustBeSameType, System.Enum.CompareTo(), System.SR.Format(), System.Enum.InternalGetCorElementType(), and System.SR.InvalidOperation_UnknownEnumType.

Referenced by System.Enum.CompareTo(), and System.Runtime.CompilerServices.RuntimeHelpers.EnumCompareTo< T >().