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

◆ GetTypeCodeImpl()

override TypeCode System.RuntimeType.GetTypeCodeImpl ( )
inlineprotectedvirtual

Reimplemented from System.Type.

Definition at line 3513 of file RuntimeType.cs.

3514 {
3515 TypeCode typeCode = Cache.TypeCode;
3516 if (typeCode != 0)
3517 {
3518 return typeCode;
3519 }
3520 typeCode = RuntimeTypeHandle.GetCorElementType(this) switch
3521 {
3522 CorElementType.ELEMENT_TYPE_BOOLEAN => TypeCode.Boolean,
3523 CorElementType.ELEMENT_TYPE_CHAR => TypeCode.Char,
3524 CorElementType.ELEMENT_TYPE_I1 => TypeCode.SByte,
3525 CorElementType.ELEMENT_TYPE_U1 => TypeCode.Byte,
3526 CorElementType.ELEMENT_TYPE_I2 => TypeCode.Int16,
3527 CorElementType.ELEMENT_TYPE_U2 => TypeCode.UInt16,
3528 CorElementType.ELEMENT_TYPE_I4 => TypeCode.Int32,
3529 CorElementType.ELEMENT_TYPE_U4 => TypeCode.UInt32,
3530 CorElementType.ELEMENT_TYPE_I8 => TypeCode.Int64,
3531 CorElementType.ELEMENT_TYPE_U8 => TypeCode.UInt64,
3532 CorElementType.ELEMENT_TYPE_R4 => TypeCode.Single,
3533 CorElementType.ELEMENT_TYPE_R8 => TypeCode.Double,
3534 CorElementType.ELEMENT_TYPE_VALUETYPE => ((object)this != typeof(decimal)) ? (((object)this != typeof(DateTime)) ? ((!IsEnum) ? TypeCode.Object : Type.GetTypeCode(Enum.InternalGetUnderlyingType(this))) : TypeCode.DateTime) : TypeCode.Decimal,
3535 _ => ((object)this != typeof(string)) ? (((object)this != typeof(DBNull)) ? TypeCode.Object : TypeCode.DBNull) : TypeCode.String,
3536 };
3537 Cache.TypeCode = typeCode;
3538 return typeCode;
3539 }
virtual bool IsEnum
Definition Type.cs:227

References System.RuntimeTypeHandle.GetCorElementType(), System.Type.GetTypeCode(), and System.Enum.InternalGetUnderlyingType().