public static Instruction Create(Type t) { if (!t.GetTypeInfo().IsEnum) { switch (t.GetTypeCode()) { case TypeCode.Boolean: return(s_boolean ?? (s_boolean = new CastInstructionT <bool>())); case TypeCode.Byte: return(s_byte ?? (s_byte = new CastInstructionT <byte>())); case TypeCode.Char: return(s_char ?? (s_char = new CastInstructionT <char>())); case TypeCode.DateTime: return(s_dateTime ?? (s_dateTime = new CastInstructionT <DateTime>())); case TypeCode.Decimal: return(s_decimal ?? (s_decimal = new CastInstructionT <decimal>())); case TypeCode.Double: return(s_double ?? (s_double = new CastInstructionT <double>())); case TypeCode.Int16: return(s_int16 ?? (s_int16 = new CastInstructionT <short>())); case TypeCode.Int32: return(s_int32 ?? (s_int32 = new CastInstructionT <int>())); case TypeCode.Int64: return(s_int64 ?? (s_int64 = new CastInstructionT <long>())); case TypeCode.SByte: return(s_SByte ?? (s_SByte = new CastInstructionT <sbyte>())); case TypeCode.Single: return(s_single ?? (s_single = new CastInstructionT <float>())); case TypeCode.String: return(s_string ?? (s_string = new CastInstructionT <string>())); case TypeCode.UInt16: return(s_UInt16 ?? (s_UInt16 = new CastInstructionT <ushort>())); case TypeCode.UInt32: return(s_UInt32 ?? (s_UInt32 = new CastInstructionT <uint>())); case TypeCode.UInt64: return(s_UInt64 ?? (s_UInt64 = new CastInstructionT <ulong>())); } } return(CastInstructionNoT.Create(t)); }
public static Instruction Create(Type t) { if (!t.GetTypeInfo().IsEnum) { switch (System.Dynamic.Utils.TypeExtensions.GetTypeCode(t)) { case TypeCode.Boolean: return(s_boolean ?? (s_boolean = new CastInstructionT <Boolean>())); case TypeCode.Byte: return(s_byte ?? (s_byte = new CastInstructionT <Byte>())); case TypeCode.Char: return(s_char ?? (s_char = new CastInstructionT <Char>())); case TypeCode.DateTime: return(s_dateTime ?? (s_dateTime = new CastInstructionT <DateTime>())); case TypeCode.Decimal: return(s_decimal ?? (s_decimal = new CastInstructionT <Decimal>())); case TypeCode.Double: return(s_double ?? (s_double = new CastInstructionT <Double>())); case TypeCode.Int16: return(s_int16 ?? (s_int16 = new CastInstructionT <Int16>())); case TypeCode.Int32: return(s_int32 ?? (s_int32 = new CastInstructionT <Int32>())); case TypeCode.Int64: return(s_int64 ?? (s_int64 = new CastInstructionT <Int64>())); case TypeCode.SByte: return(s_SByte ?? (s_SByte = new CastInstructionT <SByte>())); case TypeCode.Single: return(s_single ?? (s_single = new CastInstructionT <Single>())); case TypeCode.String: return(s_string ?? (s_string = new CastInstructionT <String>())); case TypeCode.UInt16: return(s_UInt16 ?? (s_UInt16 = new CastInstructionT <UInt16>())); case TypeCode.UInt32: return(s_UInt32 ?? (s_UInt32 = new CastInstructionT <UInt32>())); case TypeCode.UInt64: return(s_UInt64 ?? (s_UInt64 = new CastInstructionT <UInt64>())); } } return(CastInstructionNoT.Create(t)); }
public static Instruction Create(Type t) { Debug.Assert(!t.IsEnum); switch (Type.GetTypeCode(t)) { case TypeCode.Boolean: return(_boolean ??= new CastInstructionT <bool>()); case TypeCode.Byte: return(_byte ??= new CastInstructionT <byte>()); case TypeCode.Char: return(_char ??= new CastInstructionT <char>()); case TypeCode.DateTime: return(_dateTime ??= new CastInstructionT <DateTime>()); case TypeCode.Decimal: return(_decimal ??= new CastInstructionT <decimal>()); case TypeCode.Double: return(_double ??= new CastInstructionT <double>()); case TypeCode.Int16: return(_int16 ??= new CastInstructionT <short>()); case TypeCode.Int32: return(_int32 ??= new CastInstructionT <int>()); case TypeCode.Int64: return(_int64 ??= new CastInstructionT <long>()); case TypeCode.SByte: return(_sByte ??= new CastInstructionT <sbyte>()); case TypeCode.Single: return(_single ??= new CastInstructionT <float>()); case TypeCode.String: return(_string ??= new CastInstructionT <string>()); case TypeCode.UInt16: return(_uInt16 ??= new CastInstructionT <ushort>()); case TypeCode.UInt32: return(_uInt32 ??= new CastInstructionT <uint>()); case TypeCode.UInt64: return(_uInt64 ??= new CastInstructionT <ulong>()); default: return(CastInstructionNoT.Create(t)); } }
public static Instruction Create(Type t) { Debug.Assert(!t.IsEnum); return(t.GetTypeCode() switch { TypeCode.Boolean => s_Boolean ??= new CastInstructionT <bool>(), TypeCode.Byte => s_Byte ??= new CastInstructionT <byte>(), TypeCode.Char => s_Char ??= new CastInstructionT <char>(), TypeCode.DateTime => s_DateTime ??= new CastInstructionT <DateTime>(), TypeCode.Decimal => s_Decimal ??= new CastInstructionT <decimal>(), TypeCode.Double => s_Double ??= new CastInstructionT <double>(), TypeCode.Int16 => s_Int16 ??= new CastInstructionT <short>(), TypeCode.Int32 => s_Int32 ??= new CastInstructionT <int>(), TypeCode.Int64 => s_Int64 ??= new CastInstructionT <long>(), TypeCode.SByte => s_SByte ??= new CastInstructionT <sbyte>(), TypeCode.Single => s_Single ??= new CastInstructionT <float>(), TypeCode.String => s_String ??= new CastInstructionT <string>(), TypeCode.UInt16 => s_UInt16 ??= new CastInstructionT <ushort>(), TypeCode.UInt32 => s_UInt32 ??= new CastInstructionT <uint>(), TypeCode.UInt64 => s_UInt64 ??= new CastInstructionT <ulong>(), _ => CastInstructionNoT.Create(t), });