src\runtime\src\libraries\System.Private.CoreLib\src\System\Convert.cs (27)
96public static TypeCode GetTypeCode(object? value)
98if (value == null) return TypeCode.Empty;
103return TypeCode.Object;
111return value is IConvertible convertible ? convertible.GetTypeCode() == TypeCode.DBNull : false;
122public static object? ChangeType(object? value, TypeCode typeCode)
128public static object? ChangeType(object? value, TypeCode typeCode, IFormatProvider? provider)
130if (value == null && (typeCode == TypeCode.Empty || typeCode == TypeCode.String || typeCode == TypeCode.Object))
145TypeCode.Boolean => v.ToBoolean(provider),
146TypeCode.Char => v.ToChar(provider),
147TypeCode.SByte => v.ToSByte(provider),
148TypeCode.Byte => v.ToByte(provider),
149TypeCode.Int16 => v.ToInt16(provider),
150TypeCode.UInt16 => v.ToUInt16(provider),
151TypeCode.Int32 => v.ToInt32(provider),
152TypeCode.UInt32 => v.ToUInt32(provider),
153TypeCode.Int64 => v.ToInt64(provider),
154TypeCode.UInt64 => v.ToUInt64(provider),
155TypeCode.Single => v.ToSingle(provider),
156TypeCode.Double => v.ToDouble(provider),
157TypeCode.Decimal => v.ToDecimal(provider),
158TypeCode.DateTime => v.ToDateTime(provider),
159TypeCode.String => v.ToString(provider),
160TypeCode.Object => value,
161TypeCode.DBNull => throw new InvalidCastException(SR.InvalidCast_DBNull),
162TypeCode.Empty => throw new InvalidCastException(SR.InvalidCast_Empty),
src\runtime\src\libraries\System.Private.CoreLib\src\System\DefaultBinder.cs (15)
1272Boolean = 1 << TypeCode.Boolean,
1273Char = 1 << TypeCode.Char,
1274SByte = 1 << TypeCode.SByte,
1275Byte = 1 << TypeCode.Byte,
1276Int16 = 1 << TypeCode.Int16,
1277UInt16 = 1 << TypeCode.UInt16,
1278Int32 = 1 << TypeCode.Int32,
1279UInt32 = 1 << TypeCode.UInt32,
1280Int64 = 1 << TypeCode.Int64,
1281UInt64 = 1 << TypeCode.UInt64,
1282Single = 1 << TypeCode.Single,
1283Double = 1 << TypeCode.Double,
1284Decimal = 1 << TypeCode.Decimal,
1285DateTime = 1 << TypeCode.DateTime,
1286String = 1 << TypeCode.String,
src\runtime\src\libraries\System.Private.CoreLib\src\System\Enum.cs (37)
108case TypeCode.SByte:
112case TypeCode.Byte:
116case TypeCode.Int16:
120case TypeCode.UInt16:
124case TypeCode.Int32:
128case TypeCode.UInt32:
132case TypeCode.Int64:
135case TypeCode.UInt64:
1137case TypeCode.SByte: return (ulong)(sbyte)value;
1138case TypeCode.Byte: return (byte)value;
1139case TypeCode.Int16: return (ulong)(short)value;
1140case TypeCode.UInt16: return (ushort)value;
1141case TypeCode.Int32: return (ulong)(int)value;
1142case TypeCode.Int64: return (ulong)(long)value;
1143case TypeCode.UInt32: return (uint)value;
1144case TypeCode.UInt64: return (ulong)value;
1145case TypeCode.Char: return (char)value;
2161public TypeCode GetTypeCode() =>
2164CorElementType.ELEMENT_TYPE_I1 => TypeCode.SByte,
2165CorElementType.ELEMENT_TYPE_U1 => TypeCode.Byte,
2166CorElementType.ELEMENT_TYPE_I2 => TypeCode.Int16,
2167CorElementType.ELEMENT_TYPE_U2 => TypeCode.UInt16,
2168CorElementType.ELEMENT_TYPE_I4 => TypeCode.Int32,
2169CorElementType.ELEMENT_TYPE_U4 => TypeCode.UInt32,
2170CorElementType.ELEMENT_TYPE_I8 => TypeCode.Int64,
2171CorElementType.ELEMENT_TYPE_U8 => TypeCode.UInt64,
2172CorElementType.ELEMENT_TYPE_CHAR => TypeCode.Char,
2200case TypeCode.Int32: return ToObject(enumType, (int)value);
2201case TypeCode.SByte: return ToObject(enumType, (sbyte)value);
2202case TypeCode.Int16: return ToObject(enumType, (short)value);
2203case TypeCode.Int64: return ToObject(enumType, (long)value);
2204case TypeCode.UInt32: return ToObject(enumType, (uint)value);
2205case TypeCode.Byte: return ToObject(enumType, (byte)value);
2206case TypeCode.UInt16: return ToObject(enumType, (ushort)value);
2207case TypeCode.UInt64: return ToObject(enumType, (ulong)value);
2208case TypeCode.Char: return ToObject(enumType, (char)value);
2209case TypeCode.Boolean: return ToObject(enumType, (bool)value ? 1L : 0L);