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

◆ ChangeType() [4/4]

static ? object System.Convert.ChangeType ( object? value,
TypeCode typeCode,
IFormatProvider? provider )
inlinestatic

Definition at line 235 of file Convert.cs.

236 {
237 if (value == null && (typeCode == TypeCode.Empty || typeCode == TypeCode.String || typeCode == TypeCode.Object))
238 {
239 return null;
240 }
241 if (!(value is IConvertible convertible))
242 {
243 throw new InvalidCastException(SR.InvalidCast_IConvertible);
244 }
245 return typeCode switch
246 {
247 TypeCode.Boolean => convertible.ToBoolean(provider),
248 TypeCode.Char => convertible.ToChar(provider),
249 TypeCode.SByte => convertible.ToSByte(provider),
250 TypeCode.Byte => convertible.ToByte(provider),
251 TypeCode.Int16 => convertible.ToInt16(provider),
252 TypeCode.UInt16 => convertible.ToUInt16(provider),
253 TypeCode.Int32 => convertible.ToInt32(provider),
254 TypeCode.UInt32 => convertible.ToUInt32(provider),
255 TypeCode.Int64 => convertible.ToInt64(provider),
256 TypeCode.UInt64 => convertible.ToUInt64(provider),
257 TypeCode.Single => convertible.ToSingle(provider),
258 TypeCode.Double => convertible.ToDouble(provider),
259 TypeCode.Decimal => convertible.ToDecimal(provider),
260 TypeCode.DateTime => convertible.ToDateTime(provider),
261 TypeCode.String => convertible.ToString(provider),
262 TypeCode.Object => value,
263 TypeCode.DBNull => throw new InvalidCastException(SR.InvalidCast_DBNull),
264 TypeCode.Empty => throw new InvalidCastException(SR.InvalidCast_Empty),
265 _ => throw new ArgumentException(SR.Arg_UnknownTypeCode),
266 };
267 }

References System.SR.Arg_UnknownTypeCode, System.SR.InvalidCast_DBNull, System.SR.InvalidCast_Empty, System.SR.InvalidCast_IConvertible, and System.value.