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

◆ MarshalHelperConvertObjectToVariant()

static void System.Variant.MarshalHelperConvertObjectToVariant ( object o,
ref Variant v )
inlinestaticpackage

Definition at line 337 of file Variant.cs.

338 {
339 if (o == null)
340 {
341 v = Empty;
342 }
343 else if (o is IConvertible convertible)
344 {
345 IFormatProvider invariantCulture = CultureInfo.InvariantCulture;
346 v = convertible.GetTypeCode() switch
347 {
348 TypeCode.Empty => Empty,
349 TypeCode.Object => new Variant(o),
350 TypeCode.DBNull => DBNull,
351 TypeCode.Boolean => new Variant(convertible.ToBoolean(invariantCulture)),
352 TypeCode.Char => new Variant(convertible.ToChar(invariantCulture)),
353 TypeCode.SByte => new Variant(convertible.ToSByte(invariantCulture)),
354 TypeCode.Byte => new Variant(convertible.ToByte(invariantCulture)),
355 TypeCode.Int16 => new Variant(convertible.ToInt16(invariantCulture)),
356 TypeCode.UInt16 => new Variant(convertible.ToUInt16(invariantCulture)),
357 TypeCode.Int32 => new Variant(convertible.ToInt32(invariantCulture)),
358 TypeCode.UInt32 => new Variant(convertible.ToUInt32(invariantCulture)),
359 TypeCode.Int64 => new Variant(convertible.ToInt64(invariantCulture)),
360 TypeCode.UInt64 => new Variant(convertible.ToUInt64(invariantCulture)),
361 TypeCode.Single => new Variant(convertible.ToSingle(invariantCulture)),
362 TypeCode.Double => new Variant(convertible.ToDouble(invariantCulture)),
363 TypeCode.Decimal => new Variant(convertible.ToDecimal(invariantCulture)),
364 TypeCode.DateTime => new Variant(convertible.ToDateTime(invariantCulture)),
365 TypeCode.String => new Variant(convertible.ToString(invariantCulture)),
366 _ => throw new NotSupportedException(SR.Format(SR.NotSupported_UnknownTypeCode, convertible.GetTypeCode())),
367 };
368 }
369 else
370 {
371 v = new Variant(o);
372 }
373 }
static CultureInfo InvariantCulture
static readonly Variant Empty
Definition Variant.cs:117
Variant(int flags, object or, long data)
Definition Variant.cs:128
static readonly Variant DBNull
Definition Variant.cs:121

References System.Variant.Variant(), System.Variant.DBNull, System.Variant.Empty, System.SR.Format(), System.Globalization.CultureInfo.InvariantCulture, and System.SR.NotSupported_UnknownTypeCode.