System.Convert
using System.Threading;
using System.Globalization;
namespace System
{
public static class Convert : System.Object
{
internal static readonly System.Type[] ConvertTypes;
internal static readonly System.Type EnumType;
internal static readonly char[] base64Table;
public static readonly object DBNull;
public static System.TypeCode GetTypeCode(object @value)
{
// 代码大小 24 (0x18)
//.maxstack 1
//.locals init (class System.IConvertible V_0)
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0005
//IL_0003: ldc.i4.0
//IL_0004: ret
//IL_0005: ldarg.0
//IL_0006: isinst System.IConvertible
//IL_000b: stloc.0
//IL_000c: ldloc.0
//IL_000d: brfalse.s IL_0016
//IL_000f: ldloc.0
//IL_0010: callvirt instance valuetype System.TypeCode System.IConvertible::GetTypeCode()
//IL_0015: ret
//IL_0016: ldc.i4.1
//IL_0017: ret
System.IConvertible V_0;
if (@value == null)
{
return System.TypeCode.Empty;
}
else
{
V_0 = @value as System.IConvertible;
if (V_0 != null)
{
V_0.GetTypeCode();
}
else
{
return System.TypeCode.Object;
}
}
}
public static bool IsDBNull(object @value)
{
// 代码大小 32 (0x20)
//.maxstack 3
//.locals init (class System.IConvertible V_0)
//IL_0000: ldarg.0
//IL_0001: ldsfld class System.DBNull System.DBNull::Value
//IL_0006: bne.un.s IL_000a
//IL_0008: ldc.i4.1
//IL_0009: ret
//IL_000a: ldarg.0
//IL_000b: isinst System.IConvertible
//IL_0010: stloc.0
//IL_0011: ldloc.0
//IL_0012: brtrue.s IL_0016
//IL_0014: ldc.i4.0
//IL_0015: ret
//IL_0016: ldloc.0
//IL_0017: callvirt instance valuetype System.TypeCode System.IConvertible::GetTypeCode()
//IL_001c: ldc.i4.2
//IL_001d: ceq
//IL_001f: ret
System.IConvertible V_0;
if (@value == System.DBNull.Value)
{
return true;
}
else
{
V_0 = (@value as System.IConvertible);
if (V_0 == null)
{
return false;
}
else
{
return (V_0.GetTypeCode() == System.TypeCode.DBNull);
}
}
}
public static object ChangeType(object @value, System.TypeCode typeCode)
{
// 代码大小 18 (0x12)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldarg.1
//IL_0002: call class System.Threading.Thread System.Threading.Thread::get_CurrentThread()
//IL_0007: callvirt instance class System.Globalization.CultureInfo System.Threading.Thread::get_CurrentCulture()
//IL_000c: call object System.Convert::ChangeType(object,
// valuetype System.TypeCode,
// class System.IFormatProvider)
//IL_0011: ret
return Convert.ChangeType(@value, typeCode, Thread.CurrentThread.CurrentCulture);
}
public static object ChangeType(object @value, System.TypeCode typeCode, System.IFormatProvider provider)
{
// 代码大小 372 (0x174)
//.maxstack 2
//.locals init (class System.IConvertible V_0,
// valuetype System.TypeCode V_1)
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0011
//IL_0003: ldarg.1
//IL_0004: brfalse.s IL_000f
//IL_0006: ldarg.1
//IL_0007: ldc.i4.s 18
//IL_0009: beq.s IL_000f
//IL_000b: ldarg.1
//IL_000c: ldc.i4.1
//IL_000d: bne.un.s IL_0011
//IL_000f: ldnull
//IL_0010: ret
//IL_0011: ldarg.0
//IL_0012: isinst System.IConvertible
//IL_0017: stloc.0
//IL_0018: ldloc.0
//IL_0019: brtrue.s IL_002b
//IL_001b: ldstr "InvalidCast_IConvertible"
//IL_0020: call string System.Environment::GetResourceString(string)
//IL_0025: newobj instance void System.InvalidCastException::.ctor(string)
//IL_002a: throw
//IL_002b: ldarg.1
//IL_002c: stloc.1
//IL_002d: ldloc.1
//IL_002e: switch (
// IL_0154,
// IL_0142,
// IL_0144,
// IL_0084,
// IL_0091,
// IL_009e,
// IL_00ab,
// IL_00b8,
// IL_00c5,
// IL_00d2,
// IL_00df,
// IL_00ec,
// IL_00f9,
// IL_0106,
// IL_0113,
// IL_0120,
// IL_012d,
// IL_0164,
// IL_013a)
//IL_007f: br IL_0164
//IL_0084: ldloc.0
//IL_0085: ldarg.2
//IL_0086: callvirt instance bool System.IConvertible::ToBoolean(class System.IFormatProvider)
//IL_008b: box System.Boolean
//IL_0090: ret
//IL_0091: ldloc.0
//IL_0092: ldarg.2
//IL_0093: callvirt instance char System.IConvertible::ToChar(class System.IFormatProvider)
//IL_0098: box System.Char
//IL_009d: ret
//IL_009e: ldloc.0
//IL_009f: ldarg.2
//IL_00a0: callvirt instance int8 System.IConvertible::ToSByte(class System.IFormatProvider)
//IL_00a5: box System.SByte
//IL_00aa: ret
//IL_00ab: ldloc.0
//IL_00ac: ldarg.2
//IL_00ad: callvirt instance uint8 System.IConvertible::ToByte(class System.IFormatProvider)
//IL_00b2: box System.Byte
//IL_00b7: ret
//IL_00b8: ldloc.0
//IL_00b9: ldarg.2
//IL_00ba: callvirt instance int16 System.IConvertible::ToInt16(class System.IFormatProvider)
//IL_00bf: box System.Int16
//IL_00c4: ret
//IL_00c5: ldloc.0
//IL_00c6: ldarg.2
//IL_00c7: callvirt instance uint16 System.IConvertible::ToUInt16(class System.IFormatProvider)
//IL_00cc: box System.UInt16
//IL_00d1: ret
//IL_00d2: ldloc.0
//IL_00d3: ldarg.2
//IL_00d4: callvirt instance int32 System.Convertible::ToInt32(class System.IFormatProvider)
//IL_00d9: box System.Int32
//IL_00de: ret
//IL_00df: ldloc.0
//IL_00e0: ldarg.2
//IL_00e1: callvirt instance uint32 System.IConvertible::ToUInt32(class System.IFormatProvider)
//IL_00e6: box System.UInt32
//IL_00eb: ret
//IL_00ec: ldloc.0
//IL_00ed: ldarg.2
//IL_00ee: callvirt instance int64 System.IConvertible::ToInt64(class System.IFormatProvider)
//IL_00f3: box System.Int64
//IL_00f8: ret
//IL_00f9: ldloc.0
//IL_00fa: ldarg.2
//IL_00fb: callvirt instance uint64 System.IConvertible::ToUInt64(class System.IFormatProvider)
//IL_0100: box System.UInt64
//IL_0105: ret
//IL_0106: ldloc.0
//IL_0107: ldarg.2
//IL_0108: callvirt instance float32 System.IConvertible::ToSingle(class System.IFormatProvider)
//IL_010d: box System.Single
//IL_0112: ret
//IL_0113: ldloc.0
//IL_0114: ldarg.2
//IL_0115: callvirt instance float64 System.IConvertible::ToDouble(class System.IFormatProvider)
//IL_011a: box System.Double
//IL_011f: ret
//IL_0120: ldloc.0
//IL_0121: ldarg.2
//IL_0122: callvirt instance valuetype System.Decimal System.IConvertible::ToDecimal(class System.IFormatProvider)
//IL_0127: box System.Decimal
//IL_012c: ret
//IL_012d: ldloc.0
//IL_012e: ldarg.2
//IL_012f: callvirt instance valuetype System.DateTime System.IConvertible::ToDateTime(class System.IFormatProvider)
//IL_0134: box System.DateTime
//IL_0139: ret
//IL_013a: ldloc.0
//IL_013b: ldarg.2
//IL_013c: callvirt instance string System.IConvertible::ToString(class System.IFormatProvider)
//IL_0141: ret
//IL_0142: ldarg.0
//IL_0143: ret
//IL_0144: ldstr "InvalidCast_DBNull"
//IL_0149: call string System.Environment::GetResourceString(string)
//IL_014e: newobj instance void System.InvalidCastException::.ctor(string)
//IL_0153: throw
//IL_0154: ldstr "InvalidCast_Empty"
//IL_0159: call string System.Environment::GetResourceString(string)
//IL_015e: newobj instance void System.InvalidCastException::.ctor(string)
//IL_0163: throw
//IL_0164: ldstr "Arg_UnknownTypeCode"
//IL_0169: call string System.Environment::GetResourceString(string)
//IL_016e: newobj instance void System.ArgumentException::.ctor(string)
//IL_0173: throw
System.IConvertible V_0;
System.TypeCode V_1;
if (@value == null)
{
//IL_0003
if (typeCode == System.TypeCode.Empty)
{
return null;
}
else if (typeCode == System.TypeCode.String)
{
return null;
}
else if (typeCode == System.TypeCode.Object)
{
return null;
}
}
//IL_0011
V_0 = @value as System.IConvertible;
if (V_0 == null)
{
//IL_001b
throw new System.InvalidCastException(System.Environment.GetResourceString("InvalidCast_IConvertible"));
}
else
{
//IL_002b
V_1 = typeCode;
switch (V_1)
{
case System.TypeCode.Empty:
throw new System.InvalidCastException(System.Environment.GetResourceString("InvalidCast_Empty"));
//IL_0154,
case System.TypeCode.Object:
return @value;
//IL_0142,
case System.TypeCode.DBNull:
throw new System.InvalidCastException(System.Environment.GetResourceString("InvalidCast_DBNull"));
//IL_0144,
case System.TypeCode.Boolean:
return (object)V_0.ToBoolean(provider);
//IL_0084,
case System.TypeCode.Char:
return (object)V_0.ToChar(provider);
//IL_0091,
case System.TypeCode.SByte:
return (object)V_0.ToSByte(provider);
//IL_009e,
case System.TypeCode.Byte:
return (object)V_0.ToByte(provider);
//IL_00ab,
case System.TypeCode.Int16:
return (object)V_0.ToInt16(provider);
//IL_00b8,
case System.TypeCode.UInt16:
return (object)V_0.ToUInt16(provider);
//IL_00c5,
case System.TypeCode.Int32:
return (object)V_0.ToInt32(provider);
//IL_00d2,
case System.TypeCode.UInt32:
return (object)V_0.ToUInt32(provider);
//IL_00df,
case System.TypeCode.Int64:
return (object)V_0.ToInt64(provider);
//IL_00ec,
case System.TypeCode.UInt64:
return (object)V_0.ToUInt64(provider);
//IL_00f9,
case System.TypeCode.Single:
return (object)V_0.ToSingle(provider);
//IL_0106,
case System.TypeCode.Double:
return (object)V_0.ToDouble(provider);
//IL_0113,
case System.TypeCode.Decimal:
return (object)V_0.ToDecimal(provider);
//IL_0120,
case System.TypeCode.DateTime:
return (object)V_0.ToDatetime(provider);
//IL_012d,
case System.TypeCode.String:
return (object)V_0.ToString(provider);
//IL_013a
default:
throw new System.ArgumentException(System.Environment.GetResourceString("Arg_UnknownTypeCode"));
//IL_0164,
}
}
}
internal static object DefaultToType(System.IConvertible @value, System.Type targetType, System.IFormatProvider provider)
{
#region IL
// 代码大小 510 (0x1fe)
//.maxstack 5
//.locals init (object[] V_0)
//IL_0000: ldarg.1
//IL_0001: brtrue.s IL_000e
//IL_0003: ldstr "targetType"
//IL_0008: newobj instance void System.ArgumentNullException::.ctor(string)
//IL_000d: throw
//IL_000e: ldarg.0
//IL_000f: callvirt instance class System.Type System.Object::GetType()
//IL_0014: ldarg.1
//IL_0015: bne.un.s IL_0019
//IL_0017: ldarg.0
//IL_0018: ret
//IL_0019: ldarg.1
//IL_001a: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_001f: ldc.i4.3
//IL_0020: ldelem.ref
//IL_0021: bne.un.s IL_0030
//IL_0023: ldarg.0
//IL_0024: ldarg.2
//IL_0025: callvirt instance bool System.IConvertible::ToBoolean(class System.IFormatProvider)
//IL_002a: box System.Boolean
//IL_002f: ret
//IL_0030: ldarg.1
//IL_0031: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_0036: ldc.i4.4
//IL_0037: ldelem.ref
//IL_0038: bne.un.s IL_0047
//IL_003a: ldarg.0
//IL_003b: ldarg.2
//IL_003c: callvirt instance char System.IConvertible::ToChar(class System.IFormatProvider)
//IL_0041: box System.Char
//IL_0046: ret
//IL_0047: ldarg.1
//IL_0048: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_004d: ldc.i4.5
//IL_004e: ldelem.ref
//IL_004f: bne.un.s IL_005e
//IL_0051: ldarg.0
//IL_0052: ldarg.2
//IL_0053: callvirt instance int8 System.IConvertible::ToSByte(class System.IFormatProvider)
//IL_0058: box System.SByte
//IL_005d: ret
//IL_005e: ldarg.1
//IL_005f: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_0064: ldc.i4.6
//IL_0065: ldelem.ref
//IL_0066: bne.un.s IL_0075
//IL_0068: ldarg.0
//IL_0069: ldarg.2
//IL_006a: callvirt instance uint8 System.IConvertible::ToByte(class System.IFormatProvider)
//IL_006f: box System.Byte
//IL_0074: ret
//IL_0075: ldarg.1
//IL_0076: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_007b: ldc.i4.7
//IL_007c: ldelem.ref
//IL_007d: bne.un.s IL_008c
//IL_007f: ldarg.0
//IL_0080: ldarg.2
//IL_0081: callvirt instance int16 System.IConvertible::ToInt16(class System.IFormatProvider)
//IL_0086: box System.Int16
//IL_008b: ret
//IL_008c: ldarg.1
//IL_008d: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_0092: ldc.i4.8
//IL_0093: ldelem.ref
//IL_0094: bne.un.s IL_00a3
//IL_0096: ldarg.0
//IL_0097: ldarg.2
//IL_0098: callvirt instance uint16 System.IConvertible::ToUInt16(class System.IFormatProvider)
//IL_009d: box System.UInt16
//IL_00a2: ret
//IL_00a3: ldarg.1
//IL_00a4: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_00a9: ldc.i4.s 9
//IL_00ab: ldelem.ref
//IL_00ac: bne.un.s IL_00bb
//IL_00ae: ldarg.0
//IL_00af: ldarg.2
//IL_00b0: callvirt instance int32 System.IConvertible::ToInt32(class System.IFormatProvider)
//IL_00b5: box System.Int32
//IL_00ba: ret
//IL_00bb: ldarg.1
//IL_00bc: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_00c1: ldc.i4.s 10
//IL_00c3: ldelem.ref
//IL_00c4: bne.un.s IL_00d3
//IL_00c6: ldarg.0
//IL_00c7: ldarg.2
//IL_00c8: callvirt instance uint32 System.IConvertible::ToUInt32(class System.IFormatProvider)
//IL_00cd: box System.UInt32
//IL_00d2: ret
//IL_00d3: ldarg.1
//IL_00d4: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_00d9: ldc.i4.s 11
//I_00db: ldelem.ref
//IL_00dc: bne.un.s IL_00eb
//IL_00de: ldarg.0
//IL_00df: ldarg.2
//IL_00e0: callvirt instance int64 System.IConvertible::ToInt64(class System.IFormatProvider)
//IL_00e5: box System.Int64
//IL_00ea: ret
//IL_00eb: ldarg.1
//IL_00ec: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_00f1: ldc.i4.s 12
//IL_00f3: ldelem.ref
//IL_00f4: bne.un.s IL_0103
//IL_00f6: ldarg.0
//IL_00f7: ldarg.2
//IL_00f8: callvirt instance uint64 System.IConvertible::ToUInt64(class System.IFormatProvider)
//IL_00fd: box System.UInt64
//IL_0102: ret
//IL_0103: ldarg.1
//IL_0104: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_0109: ldc.i4.s 13
//IL_010b: ldelem.ref
//IL_010c: bne.un.s IL_011b
//IL_010e: ldarg.0
//IL_010f: ldarg.2
//IL_0110: callvirt instance float32 System.IConvertible::ToSingle(class System.IFormatProvider)
//IL_0115: box System.Single
//IL_011a: ret
//IL_011b: ldarg.1
//IL_011c: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_0121: ldc.i4.s 14
//IL_0123: ldelem.ref
//IL_0124: bne.un.s IL_0133
//IL_0126: ldarg.0
//IL_0127: ldarg.2
//IL_0128: callvirt instance float64 System.IConvertible::ToDouble(class System.IFormatProvider)
//IL_012d: box System.Double
//IL_0132: ret
//IL_0133: ldarg.1
//IL_0134: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_0139: ldc.i4.s 15
//IL_013b: ldelem.ref
//IL_013c: bne.un.s IL_014b
//IL_013e: ldarg.0
//IL_013f: ldarg.2
//IL_0140: callvirt instance valuetype System.Decimal System.IConvertible::ToDecimal(class System.IFormatProvider)
//IL_0145: box System.Decimal
//IL_014a: ret
//IL_014b: ldarg.1
//IL_014c: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_0151: ldc.i4.s 16
//IL_0153: ldelem.ref
//IL_0154: bne.un.s IL_0163
//IL_0156: ldarg.0
//IL_0157: ldarg.2
//IL_0158: callvirt instance valuetype System.DateTime System.IConvertible::ToDateTime(class System.IFormatProvider)
//IL_015d: box System.DateTime
//IL_0162: ret
//IL_0163: ldarg.1
//IL_0164: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_0169: ldc.i4.s 18
//IL_016b: ldelem.ref
//IL_016c: bne.un.s IL_0176
//IL_016e: ldarg.0
//IL_016f: ldarg.2
//IL_0170: callvirt instance string System.IConvertible::ToString(class System.IFormatProvider)
//IL_0175: ret
//IL_0176: ldarg.1
//IL_0177: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_017c: ldc.i4.1
//IL_017d: ldelem.ref
//IL_017e: bne.un.s IL_0182
//IL_0180: ldarg.0
//IL_0181: ret
//IL_0182: ldarg.1
//IL_0183: ldsfld class System.Type System.Convert::EnumType
//IL_0188: bne.un.s IL_0191
//IL_018a: ldarg.0
//IL_018b: castclass System.Enum
//IL_0190: ret
//IL_0191: ldarg.1
//IL_0192: ldsfld class System.Type[] System.Convrt::ConvertTypes
//IL_0197: ldc.i4.2
//IL_0198: ldelem.ref
//IL_0199: bne.un.s IL_01ab
//IL_019b: ldstr "InvalidCast_DBNull"
//IL_01a0: call string System.Environment::GetResourceString(string)
//IL_01a5: newobj instance void System.InvalidCastException::.ctor(string)
//IL_01aa: throw
//IL_01ab: ldarg.1
//IL_01ac: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_01b1: ldc.i4.0
//IL_01b2: ldelem.ref
//IL_01b3: bne.un.s IL_01c5
//IL_01b5: ldstr "InvalidCast_Empty"
//IL_01ba: call string System.Environment::GetResourceString(string)
//IL_01bf: newobj instance void System.InvalidCastException::.ctor(string)
//IL_01c4: throw
//IL_01c5: call class System.Globalization.CultureInfo System.Globalization.CultureInfo::get_CurrentCulture()
//IL_01ca: ldstr "InvalidCast_FromTo"
//IL_01cf: call string System.Environment::GetResourceString(string)
//IL_01d4: ldc.i4.2
//IL_01d5: newarr System.Object
//IL_01da: stloc.0
//IL_01db: ldloc.0
//IL_01dc: ldc.i4.0
//IL_01dd: ldarg.0
//IL_01de: callvirt instance class System.Type System.Object::GetType()
//IL_01e3: callvirt instance string System.Type::get_FullName()
//IL_01e8: stelem.ref
//IL_01e9: ldloc.0
//IL_01ea: ldc.i4.1
//IL_01eb: ldarg.1
//IL_01ec: callvirt instance string System.Type::get_FullName()
//IL_01f1: stelem.ref
//IL_01f2: ldloc.0
//IL_01f3: call string System.String::Format(class System.IFormatProvider,
// string,
// object[])
//IL_01f8: newobj instance void System.InvalidCastException::.ctor(string)
//IL_01fd: throw
#endregion
object[] V_0;
if (targetType == null)
{
throw new System.ArgumentNullException("targetType");
}
else if (@value.GetType() == targetType)
{
return @value;
}
else if (targetType == Convert.ConvertTypes[3])
{
return (object)@value.ToBoolean(provider);
}
else if (targetType == Convert.ConvertTypes[4])
{
return (object)@value.ToChar(provider);
}
else if (targetType == Convert.ConvertTypes[5])
{
return (object)@value.ToSByte(provider);
}
else if (targetType == Convert.ConvertTypes[6])
{
return (object)@value.ToByte(provider);
}
else if (targetType == Convert.ConvertTypes[7])
{
return (object)@value.ToInt16(provider);
}
else if (targetType == Convert.ConvertTypes[8])
{
return (object)@value.ToUInt16(provider);
}
else if (targetType == Convert.ConvertTypes[9])
{
return (object)@value.ToInt32(provider);
}
else if (targetType == Convert.ConvertTypes[10])
{
return (object)@value.ToUInt32(provider);
}
else if (targetType == Convert.ConvertTypes[11])
{
return (object)@value.ToInt64(provider);
}
else if (targetType == Convert.ConvertTypes[12])
{
return (object)@value.ToUInt64(provider);
}
else if (targetType == Convert.ConvertTypes[13]
{
return (object)@value.ToSingle(provider);
}
else if (targetType == Convert.ConvertTypes[14])
{
return (object)@value.ToDouble(provider);
}
else if (targetType == Convert.ConvertTypes[15])
{
return (object)@value.ToDecimal(provider);
}
else if (targetType == Convert.ConvertTypes[16])
{
return (object)@value.ToDateTime(provider);
}
else if (targetType == Convert.ConvertTypes[18])
{
return @value.ToString(provider);
}
else if (targetType == Convert.ConvertTypes[1])
{
return @value;
}
else if (targetType == Convert.EnumType)
{
return (System.Enum)@value;
}
else if (targetType == Convert.ConvertTypes[2])
{
throw new System.InvalidCastException(System.Environment.GetResourceString("InvalidCast_DBNull"));
}
else if (targetType == Convert.ConvertTypes[0])
{
throw new System.InvalidCastException(System.Environment.GetResourceString("InvalidCast_Empty"));
}
else
{
//IL_01c5
V_0 = new object[2];
V_0[0] = @value.GetType().FullName;
V_0[1] = targetType.FullName;
throw new System.InvalidCastException(string.Format(CultureInfo.CurrentCulture, System.Environment.GetResourceString("InvalidCast_FromTo"), V_0));
}
}
public static object ChangeType(object @value, System.Type conversionType)
{
// 代码大小 18 (0x12)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldarg.1
//IL_0002: call class System.Threading.Thread System.Threading.Thread::get_CurrentThread()
//IL_0007: callvirt instance class System.Globalization.CultureInfo System.Threading.Thread::get_CurrentCulture()
//IL_000c: call object System.Convert::ChangeType(object,
// class System.Type,
// class System.IFormatProvider)
//IL_0011: ret
Convert.ChangeType(@value, conversionType, Thread.CurrentThread.CurrentCulture);
}
public static object ChangeType(object @value, System.Type conversionType, System.IFormatProvider provider)
{
#region IL
// 代码大小 450 (0x1c2)
//.maxstack 3
//.locals init (class System.IConvertible V_0)
//IL_0000: ldarg.1
//IL_0001: brtrue.s IL_000e
//IL_0003: ldstr "conversionType"
//IL_0008: newobj instance void System.ArgumentNullException::.ctor(string)
//IL_000d: throw
//IL_000e: ldarg.0
//IL_000f: brtrue.s IL_002b
//IL_0011: ldarg.1
//IL_0012: callvirt instance bool System.Type::get_IsValueType()
//IL_0017: brfalse.s IL_0029
//IL_0019: ldstr "InvalidCast_CannotCastNullToValueType"
//IL_001e: call string System.Environment::GetResourceString(string)
//IL_0023: newobj instance void System.InvalidCastException::.ctor(string)
//IL_0028: throw
//IL_0029: ldnull
//IL_002a: ret
//IL_002b: ldarg.0
//IL_002c: isinst System.IConvertible
//IL_0031: stloc.0
//IL_0032: ldloc.0
//IL_0033: brtrue.s IL_0050
//IL_0035: ldarg.0
//IL_0036: callvirt instance class System.Type System.Object::GetType()
//IL_003b: ldarg.1
//IL_003c: bne.un.s IL_0040
//IL_003e: ldarg.0
//IL_003f: ret
//IL_0040: ldstr "InvalidCast_IConvertible"
//IL_0045: call string System.Environment::GetResourceString(string)
//IL_004a: newobj instance void System.InvalidCastException::.ctor(string)
//IL_004f: throw
//IL_0050: ldarg.1
//IL_0051: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_0056: ldc.i4.3
//IL_0057: ldelem.ref
//IL_0058: bne.un.s IL_0067
//IL_005a: ldloc.0
//IL_005b: ldarg.2
//IL_005c: callvirt instance bool System.IConvertible::ToBoolean(class System.IFormatProvider)
//IL_0061: box System.Boolean
//IL_0066: ret
//IL_0067: ldarg.1
//IL_0068: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_006d: ldc.i4.4
//IL_006e: ldelem.ref
//IL_006f: bne.un.s IL_007e
//IL_0071: ldloc.0
//IL_0072: ldarg.2
//IL_0073: callvirt instance char System.IConvertible::ToChar(class System.IFormatProvider)
//IL_0078: box System.Char
//IL_007d: ret
//IL_007e: ldarg.1
//IL_007f: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_0084: ldc.i4.5
//IL_0085: ldelem.ref
//IL_0086: bne.un.s IL_0095
//IL_0088: ldloc.0
//IL_0089: ldarg.2
//IL_008a: callvirt instance int8 System.IConvertible::ToSByte(class System.IFormatProvider)
//IL_008f: box System.SByte
//IL_0094: ret
//IL_0095: ldarg.1
//IL_0096: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_009b: ldc.i4.6
//IL_009c: ldelem.ref
//IL_009d: bne.un.s IL_00ac
//IL_009f: ldloc.0
//IL_00a0: ldarg.2
//IL_00a1: callvirt instance uint8 System.IConvertible::ToByte(class System.IFormatProvider)
//IL_00a6: box System.Byte
//IL_00ab: ret
//IL_00ac: ldarg.1
//IL_00ad: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_00b2: ldc.i4.7
//IL_00b3: ldelem.ref
//IL_00b4: bne.un.s IL_00c3
//IL_00b6: ldloc.0
//IL_00b7: ldarg.2
//IL_00b8: callvirt instance int16 System.IConvertible::ToInt16(class System.IFormatProvider)
//IL_00bd: box System.Int16
//IL_00c2: ret
//IL_00c3: ldarg.1
//IL_00c4: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_00c9: ldc.i4.8
//IL_00ca: ldelem.ref
//IL_00cb: bne.un.s IL_00da
//IL_00cd: ldloc.0
//IL_00ce: ldarg.2
//IL_00cf: callvirt instance uint16 System.IConvertible::ToUInt16(class System.IFormatProvider)
//IL_00d4: box System.UInt16
//IL_00d9: ret
//IL_00da: ldarg.1
//IL_00db: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_00e0: ldc.i4.s 9
//IL_00e2: ldelem.ref
//IL_00e3: bne.un.s IL_00f2
//IL_00e5: ldloc.0
//IL_00e6: ldarg.2
//IL_00e7: callvirt instance int32 System.IConvertible::ToInt32(class System.IFormatProvider)
//IL_00ec: box System.Int32
//IL_00f1: ret
//IL_00f2: ldarg.1
//IL_00f3: ldsfld class Syste.Type[] System.Convert::ConvertTypes
//IL_00f8: ldc.i4.s 10
//IL_00fa: ldelem.ref
//IL_00fb: bne.un.s IL_010a
//IL_00fd: ldloc.0
//IL_00fe: ldarg.2
//IL_00ff: callvirt instance uint32 System.IConvertible::ToUInt32(class System.IFormatProvider)
//IL_0104: box System.UInt32
//IL_0109: ret
//IL_010a: ldarg.1
//IL_010b: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_0110: ldc.i4.s 11
//IL_0112: ldelem.ref
//IL_0113: bne.un.s IL_0122
//IL_0115: ldloc.0
//IL_0116: ldarg.2
//IL_0117: callvirt instance int64 System.IConvertible::ToInt64(class System.IFormatProvider)
//IL_011c: box System.Int64
//IL_0121: ret
//IL_0122: ldarg.1
//IL_0123: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_0128: ldc.i4.s 12
//IL_012a: ldelem.ref
//IL_012b: bne.un.s IL_013a
//IL_012d: ldloc.0
//IL_012e: ldarg.2
//IL_012f: callvirt instance uint64 System.IConvertible::ToUInt64(class System.IFormatProvider)
//IL_0134: box System.UInt64
//IL_0139: ret
//IL_013a: ldarg.1
//IL_013b: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_0140: ldc.i4.s 13
//IL_0142: ldelem.ref
//IL_0143: bne.un.s IL_0152
//IL_0145: ldloc.0
//IL_0146: ldarg.2
//IL_0147: callvirt instance float32 System.IConvertible::ToSingle(class System.IFormatProvider)
//IL_014c: box System.Single
//IL_0151: ret
//IL_0152: ldarg.1
//IL_0153: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_0158: ldc.i4.s 14
//IL_015a: ldelem.ref
//IL_015b: bne.un.s IL_016a
//IL_015d: ldloc.0
//IL_015e: ldarg.2
//IL_015f: callvirt instance float64 System.IConvertible::ToDouble(class System.IFormatProvider)
//IL_0164: box System.Double
//IL_0169: ret
//IL_016a: ldarg.1
//IL_016b: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_0170: ldc.i4.s 15
//IL_0172: ldelem.ref
//IL_0173: bne.un.s IL_0182
//IL_0175: ldloc.0
//IL_0176: ldarg.2
//IL_0177: callvirt instance valuetype System.Decimal System.IConvertible::ToDecimal(class System.IFormatProvider)
//IL_017c: box System.Decimal
//IL_0181: ret
//IL_0182: ldarg.1
//IL_0183: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_0188: ldc.i4.s 16
//IL_018a: ldelem.ref
//IL_018b: bne.un.s IL_019a
//IL_018d: ldloc.0
//IL_018e: ldarg.2
//IL_018f: callvirt instance valuetype System.DateTime System.IConvertible::ToDateTime(class System.IFormatProvider)
//IL_0194: box System.DateTime
//IL_0199: ret
//IL_019a: ldarg.1
//IL_019b: ldsfld class System.Type[] System.Convert::ConvertTypes
//IL_01a0: ldc.i4.s 18
//IL_01a2: ldelem.ref
//IL_01a3: bne.un.s IL_01ad
//IL_01a5: ldloc.0
//IL_01a6: ldarg.2
//IL_01a7: callvirt instance string System.IConvertible::ToString(class System.IFormatProvider)
//IL_01ac: ret
//IL_01ad: ldarg.1
//IL_01ae: ldsfld class System.Type[] Syste.Convert::ConvertTypes
//IL_01b3: ldc.i4.1
//IL_01b4: ldelem.ref
//IL_01b5: bne.un.s IL_01b9
//IL_01b7: ldarg.0
//IL_01b8: ret
//IL_01b9: ldloc.0
//IL_01ba: ldarg.1
//IL_01bb: ldarg.2
//IL_01bc: callvirt instance object System.IConvertible::ToType(class System.Type,
// class System.IFormatProvider)
//IL_01c1: ret
#endregion
System.IConvertible V_0;
if (conversionType == null)
{
throw new System.ArgumentNullException("conversionType");
}
else
{
//IL_000e
if (@value == null)
{
if (conversionType.IsValueType)
{
throw new System.InvalidCastException(System.Environment.GetResourceString("InvalidCast_CannotCastNullToValueType"));
}
else
{
return null;
}
}
else
{
//IL_002b
V_0 = @value as System.IConvertible;
if (V_0 == null)
{
if (@value.GetType() == conversionType)
{
return @value;
}
else
{
throw new System.InvalidCastException("InvalidCast_IConvertible");
}
}
else if (conversionType == Convert.ConvertTypes[3])
{
return (object)V_0.ToBoolean(provider);
}
else if (conversionType == Convert.ConvertTypes[4])
{
return (object)V_0.ToChar(provider);
}
else if (conversionType == Convert.ConvertTypes[5])
{
return (object)V_0.ToSByte(provider);
}
else if (conversionType == Convert.ConvertTypes[6])
{
return (object)V_0.ToByte(provider);
}
else if (conversionType == Convert.ConvertTypes[7])
{
return (object)V_0.ToInt16(provider);
}
else if (conversionType == Convert.ConvertTypes[8])
{
return (object)V_0.ToUInt16(provider);
}
else if (conversionType == Convert.ConvertTypes[9])
{
return (object)V_0.ToInt32(provider);
}
else if (conversionType == Convert.ConvertTypes[10])
{
return (object)V_0.ToUInt32(provider);
}
else if (conversionType == Convert.ConvertTypes[11])
{
return (object)V_0.ToInt64(provider);
}
else if (conversionType == Convert.ConvertTypes[12])
{
return (object)V_0.ToUInt64(provider);
}
else if (conversionType == Convert.ConvertTypes[13])
{
return (object)V_0.ToSingle(provider);
}
else if (conversionType == Convert.ConvertTypes[14])
{
return (object)V_0.ToDouble(provider);
}
else if (conversionType == Convert.ConvertTypes[15])
{
return (object)V_0.ToDecimal(provider);
}
else if (conversionType == Convert.ConvertTypes[16])
{
return (object)V_0.ToDateTime(provider);
}
else if (conversionType == Convert.ConvertTypes[18])
{
return V_0.ToString(provider);
}
else if (conversionType == Convert.ConvertTypes[1])
{
return @value;
}
else
{
return V_0.ToType(conversionType, provider);
}
}
}
}
public static bool ToBoolean(object @value)
{
// 代码大小 18 (0x12)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldnull
//IL_000a: callvirt instance bool System.IConvertible::ToBoolean(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldc.i4.0
//IL_0011: ret
if (@value == null)
{
return false;
}
else
{
return ((System.IConvertible)@value).ToBoolean(null);
}
}
public static bool ToBoolean(object @value, System.IFormatProvider provider)
{
// 代码大小 18 (0x12)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldarg.1
//IL_000a: callvirt instance bool System.IConvertible::ToBoolean(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldc.i4.0
//IL_0011: ret
if (@value == null)
{
return false;
}
else
{
return ((System.IConvertible)@value).ToBoolean(provider);
}
}
public static bool ToBoolean(bool @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return @value;
}
[System.CLSCompliant(false)]
public static bool ToBoolean(sbyte @value)
{
// 代码大小 8 (0x8)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: ceq
//IL_0004: ldc.i4.0
//IL_0005: ceq
//IL_0007: ret
return ((@value == 0) == false);
}
public static bool ToBoolean(char @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.Char
//IL_0006: ldnull
//IL_0007: callvirt instance bool System.IConvertible::ToBoolean(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToBoolean(null);
}
public static bool ToBoolean(byte @value)
{
// 代码大小 8 (0x8)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: ceq
//IL_0004: ldc.i4.0
//IL_0005: ceq
//IL_0007: ret
}
public static bool ToBoolean(short @value)
{
// 代码大小 8 (0x8)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: ceq
//IL_0004: ldc.i4.0
//IL_0005: ceq
//IL_0007: ret
return (@value == 0) == false;
}
[System.CLSCompliant(false)]
public static bool ToBoolean(ushort @value)
{
// 代码大小 8 (0x8)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: ceq
//IL_0004: ldc.i4.0
//IL_0005: ceq
//IL_0007: ret
return (@value == 0) == false;
}
public static bool ToBoolean(int @value)
{
// 代码大小 8 (0x8)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: ceq
//IL_0004: ldc.i4.0
//IL_0005: ceq
//IL_0007: ret
return (@value == 0) == false;
}
[System.CLSCompliant(false)]
public static bool ToBoolean(uint @value)
{
// 代码大小 8 (0x8)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: ceq
//IL_0004: ldc.i4.0
//IL_0005: ceq
//IL_0007: ret
return (@value == 0) == false;
}
public static bool ToBoolean(long @value)
{
// 代码大小 9 (0x9)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: conv.i8
//IL_0003: ceq
//IL_0005: ldc.i4.0
//IL_0006: ceq
//IL_0008: ret
return (@value == 0L) == false;
}
[System.CLSCompliant(false)]
public static bool ToBoolean(ulong @value)
{
// 代码大小 9 (0x9)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: conv.i8
//IL_0003: ceq
//IL_0005: ldc.i4.0
//IL_0006: ceq
//IL_0008: ret
return (@value == 0UL) == false;
}
public static bool ToBoolean(string @value)
{
// 代码大小 12 (0xc)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0005
//IL_0003: ldc.i4.0
//IL_0004: ret
//IL_0005: ldarg.0
//IL_0006: call bool System.Boolean::Parse(string)
//IL_000b: ret
if (@value == null)
{
return false;
}
else
{
return System.Boolean.Parse(@value);
}
}
public static bool ToBoolean(string @value, System.IFormatProvider provider)
{
// 代码大小 12 (0xc)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0005
//IL_0003: ldc.i4.0
//IL_0004: ret
//IL_0005: ldarg.0
//IL_0006: call bool System.Boolean::Parse(string)
//IL_000b: ret
if (@value == null)
{
return false;
}
else
{
return System.Boolean.Parse(@value);
}
}
public static bool ToBoolean(float @value)
{
// 代码大小 12 (0xc)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.r4 0.0
//IL_0006: ceq
//IL_0008: ldc.i4.0
//IL_0009: ceq
//IL_000b: ret
return (@value == 0.0f) == false;
}
public static bool ToBoolean(double @value)
{
// 代码大小 16 (0x10)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.r8 0.0
//IL_000a: ceq
//IL_000c: ldc.i4.0
//IL_000d: ceq
//IL_000f: ret
return (@value == 0.0) == false;
}
public static bool ToBoolean(System.Decimal @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: newobj instance void System.Decimal::.ctor(int32)
//IL_0007: call bool System.Decimal::op_Inequality(valuetype System.Decimal,
// valuetype System.Decimal)
//IL_000c: ret
return decimal.op_Inequality(@value, new decimal(0));
}
public static bool ToBoolean(System.DateTime @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.DateTime
//IL_0006: ldnull
//IL_0007: callvirt instance bool System.IConvertible::ToBoolean(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToBoolean(null);
}
public static char ToChar(object @value)
{
// 代码大小 18 (0x12)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldnull
//IL_000a: callvirt instance char System.IConvertible::ToChar(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldc.i4.0
//IL_0011: ret
if (@value == null)
{
return '\0';
}
else
{
return ((System.IConvertible)@value).ToChar(null);
}
}
public static char ToChar(object @value, System.IFormatProvider provider)
{
// 代码大小 18 (0x12)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldarg.1
//IL_000a: callvirt instance char System.IConvertible::ToChar(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldc.i4.0
//IL_0011: ret
if (@value == null)
{
return '\0';
}
else
{
return ((System.IConvertible)@value).ToChar(provider);
}
}
public static char ToChar(bool @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.Boolean
//IL_0006: ldnull
//IL_0007: callvirt instance char System.IConvertible::ToChar(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToChar(null);
}
public static char ToChar(char @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return @value;
}
[System.CLSCompliant(false)]
public static char ToChar(sbyte @value)
{
// 代码大小 23 (0x17)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: bge.s IL_0014
//IL_0004: ldstr "Overflow_Char"
//IL_0009: call string System.Environment::GetResourceString(string)
//IL_000e: newobj instance void System.OverflowException::.ctor(string)
//IL_0013: throw
//IL_0014: ldarg.0
//IL_0015: conv.u2
//IL_0016: ret
if (@value >= 0)
{
return (char)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Char"));
}
}
public static char ToChar(byte @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return (char)@value;
}
public static char ToChar(short @value)
{
// 代码大小 23 (0x17)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: bge.s IL_0014
//IL_0004: ldstr "Overflow_Char"
//IL_0009: call string System.Environment::GetResourceString(string)
//IL_000e: newobj instance void System.OverflowException::.ctor(string)
//IL_0013: throw
//IL_0014: ldarg.0
//IL_0015: conv.u2
//IL_0016: ret
if (@value >= 0)
{
return (char)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Char"));
}
}
[System.CLSCompliant(false)]
public static char ToChar(ushort @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return (char)@value;
}
public static char ToChar(int @value)
{
// 代码大小 31 (0x1f)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: blt.s IL_000c
//IL_0004: ldarg.0
//IL_0005: ldc.i4 0xffff
//IL_000a: ble.s IL_001c
//IL_000c: ldstr "Overflow_Char"
//IL_0011: call string System.Environment::GetResourceString(string)
//IL_0016: newobj instance void System.OverflowException::.ctor(string)
//IL_001b: throw
//IL_001c: ldarg.0
//IL_001d: conv.u2
//IL_001e: ret
if (@value >= 0 && @value <= 0xffff)
{
return (char)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Char"));
}
}
[System.CLSCompliant(false)]
public static char ToChar(uint @value)
{
// 代码大小 27 (0x1b)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4 0xffff
//IL_0006: ble.un.s IL_0018
//IL_0008: ldstr "Overflow_Char"
//IL_000d: call string System.Environment::GetResourceString(string)
//IL_0012: newobj instance void System.OverflowException::.ctor(string)
//IL_0017: throw
//IL_0018: ldarg.0
//IL_0019: conv.u2
//IL_001a: ret
if (@value <= 0xffff)
{
return (char)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Char"));
}
}
public static char ToChar(long @value)
{
// 代码大小 33 (0x21)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: conv.i8
//IL_0003: blt.s IL_000e
//IL_0005: ldarg.0
//IL_0006: ldc.i4 0xffff
//IL_000b: conv.i8
//IL_000c: ble.s IL_001e
//IL_000e: ldstr "Overflow_Char"
//IL_0013: call string System.Environment::GetResourceString(string)
//IL_0018: newobj instance void System.OverflowException::.ctor(string)
//IL_001d: throw
//IL_001e: ldarg.0
//IL_001f: conv.u2
//IL_0020: ret
if (@value >= 0L && @value <= 0xffffL)
{
return (char)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Char"));
}
}
[System.CLSCompliant(false)]
public static char ToChar(ulong @value)
{
// 代码大小 28 (0x1c)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4 0xffff
//IL_0006: conv.i8
//IL_0007: ble.un.s IL_0019
//IL_0009: ldstr "Overflow_Char"
//IL_000e: call string System.Environment::GetResourceString(string)
//IL_0013: newobj instance void System.OverflowException::.ctor(string)
//IL_0018: throw
//IL_0019: ldarg.0
//IL_001a: conv.u2
//IL_001b: ret
if (@value <= 0xfffful)
{
return (char)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Char"));
}
}
public static char ToChar(string @value)
{
// 代码大小 8 (0x8)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldnull
//IL_0002: call char System.Convert::ToChar(string,
// class System.IFormatProvider)
//IL_0007: ret
return Convert.ToChar(@value, null);
}
public static char ToChar(string @value, System.IFormatProvider provider)
{
// 代码大小 47 (0x2f)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_000e
//IL_0003: ldstr "value"
//IL_0008: newobj instance void System.ArgumentNullException::.ctor(string)
//IL_000d: throw
//IL_000e: ldarg.0
//IL_000f: callvirt instance int32 System.String::get_Length()
//IL_0014: ldc.i4.1
//IL_0015: beq.s IL_0027
//IL_0017: ldstr "Format_NeedSingleChar"
//IL_001c: call string System.Environment::GetResourceString(string)
//IL_0021: newobj instance void System.FormatException::.ctor(string)
//IL_0026: throw
//IL_0027: ldarg.0
//IL_0028: ldc.i4.0
//IL_0029: callvirt instance char System.String::get_Chars(int32)
//IL_002e: ret
if (@value == null)
{
throw new System.ArgumentNullException("value");
}
else
{
if (@value.Length == 1)
{
return @value[0];
}
else
{
throw new System.FormatException(System.Environment.GetResourceString("Format_NeedSingleChar"));
}
}
}
public static char ToChar(float @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.Single
//IL_0006: ldnull
//IL_0007: callvirt instance char System.IConvertible::ToChar(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToChar(null);
}
public static char ToChar(double @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.Double
//IL_0006: ldnull
//IL_0007: callvirt instance char System.IConvertible::ToChar(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToChar(null);
}
public static char ToChar(System.Decimal @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.Decimal
//IL_0006: ldnull
//IL_0007: callvirt instance char System.IConvertible::ToChar(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToChar(null);
}
public static char ToChar(System.DateTime @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.DateTime
//IL_0006: ldnull
//IL_0007: callvirt instance char System.IConvertible::ToChar(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToChar(null);
}
[System.CLSCompliant(false)]
public static sbyte ToSByte(object @value)
{
// 代码大小 18 (0x12)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldnull
//IL_000a: callvirt instance int8 System.IConvertible::ToSByte(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldc.i4.0
//IL_0011: ret
if (@value == null)
{
return (sbyte)0;
}
else
{
return ((System.IConvertible)@value).ToSByte(null);
}
}
[System.CLSCompliant(false)]
public static sbyte ToSByte(object @value, System.IFormatProvider provider)
{
// 代码大小 18 (0x12)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldarg.1
//IL_000a: callvirt instance int8 System.IConvertible::ToSByte(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldc.i4.0
//IL_0011: ret
if (@value == null)
{
return (sbyte)0;
}
else
{
return ((System.IConvertible)@value).ToSByte(provider);
}
}
[System.CLSCompliant(false)]
public static sbyte ToSByte(bool @value)
{
// 代码大小 7 (0x7)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0005
//IL_0003: ldc.i4.0
//IL_0004: ret
//IL_0005: ldc.i4.1
//IL_0006: ret
if (@value)
{
return (sbyte)1;
}
else
{
return (sbyte)0;
}
}
[System.CLSCompliant(false)]
public static sbyte ToSByte(sbyte @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return @value;
}
[System.CLSCompliant(false)]
public static sbyte ToSByte(char @value)
{
// 代码大小 24 (0x18)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.s 127
//IL_0003: ble.s IL_0015
//IL_0005: ldstr "Overflow_SByte"
//IL_000a: call string System.Environment::GetResourceString(string)
//IL_000f: newobj instance void System.OverflowException::.ctor(string)
//IL_0014: throw
//IL_0015: ldarg.0
//IL_0016: conv.i1
//IL_0017: ret
if (@value <= 127)
{
return (sbyte)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_SByte"));
}
}
[System.CLSCompliant(false)]
public static sbyte ToSByte(byte @value)
{
// 代码大小 24 (0x18)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.s 127
//IL_0003: ble.s IL_0015
//IL_0005: ldstr "Overflow_SByte"
//IL_000a: call string System.Environment::GetResourceString(string)
//IL_000f: newobj instance void System.OverflowException::.ctor(string)
//IL_0014: throw
//IL_0015: ldarg.0
//IL_0016: conv.i1
//IL_0017: ret
if (@value <= 127)
{
return (sbyte)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_SByte"));
}
}
[System.CLSCompliant(false)]
public static sbyte ToSByte(short @value)
{
// 代码大小 29 (0x1d)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.s -128
//IL_0003: blt.s IL_000a
//IL_0005: ldarg.0
//IL_0006: ldc.i4.s 127
//IL_0008: ble.s IL_001a
//IL_000a: ldstr "Overflow_SByte"
//IL_000f: call string System.Environment::GetResourceString(string)
//IL_0014: newobj instance void System.OverflowException::.ctor(string)
//IL_0019: throw
//IL_001a: ldarg.0
//IL_001b: conv.i1
//IL_001c: ret
if (@value >= -128 && @value <= 127)
{
return (sbyte)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_SByte"));
}
}
[System.CLSCompliant(false)]
public static sbyte ToSByte(ushort @value)
{
// 代码大小 24 (0x18)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.s 127
//IL_0003: ble.s IL_0015
//IL_0005: ldstr "Overflow_SByte"
//IL_000a: call string System.Environment::GetResourceString(string)
//IL_000f: newobj instance void System.OverflowException::.ctor(string)
//IL_0014: throw
//IL_0015: ldarg.0
//IL_0016: conv.i1
//IL_0017: ret
if (@value <= 127)
{
return (sbyte)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_SByte"));
}
}
[System.CLSCompliant(false)]
public static sbyte ToSByte(int @value)
{
// 代码大小 29 (0x1d)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.s -128
//IL_0003: blt.s IL_000a
//IL_0005: ldarg.0
//IL_0006: ldc.i4.s 127
//IL_0008: ble.s IL_001a
//IL_000a: ldstr "Overflow_SByte"
//IL_000f: call string System.Environment::GetResourceString(string)
//IL_0014: newobj instance void System.OverflowException::.ctor(string)
//IL_0019: throw
//IL_001a: ldarg.0
//IL_001b: conv.i1
//IL_001c: ret
if (@value >= -128 && @value <= 127)
{
return (sbyte)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_SByte"));
}
}
[System.CLSCompliant(false)]
public static sbyte ToSByte(uint @value)
{
// 代码大小 26 (0x1a)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.u8
//IL_0002: ldc.i4.s 127
//IL_0004: conv.i8
//IL_0005: ble.s IL_0017
//IL_0007: ldstr "Overflow_SByte"
//IL_000c: call string System.Environment::GetResourceString(string)
//IL_0011: newobj instance void System.OverflowException::.ctor(string)
//IL_0016: throw
//IL_0017: ldarg.0
//IL_0018: conv.i1
//IL_0019: ret
if (@value <= 127)
{
return (sbyte)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_SByte"));
}
}
[System.CLSCompliant(false)]
public static sbyte ToSByte(long @value)
{
// 代码大小 31 (0x1f)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.s -128
//IL_0003: conv.i8
//IL_0004: blt.s IL_000c
//IL_0006: ldarg.0
//IL_0007: ldc.i4.s 127
//IL_0009: conv.i8
//IL_000a: ble.s IL_001c
//IL_000c: ldstr "Overflow_SByte"
//IL_0011: call string System.Environment::GetResourceString(string)
//IL_0016: newobj instance void System.OverflowException::.ctor(string)
//IL_001b: throw
//IL_001c: ldarg.0
//IL_001d: conv.i1
//IL_001e: ret
if (@value >= -128L && @value <= 127L)
{
return (sbyte)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_SByte"));
}
}
[System.CLSCompliant(false)]
public static sbyte ToSByte(ulong @value)
{
// 代码大小 25 (0x19)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.s 127
//IL_0003: conv.i8
//IL_0004: ble.un.s IL_0016
//IL_0006: ldstr "Overflow_SByte"
//IL_000b: call string System.Environment::GetResourceString(string)
//IL_0010: newobj instance void System.OverflowException::.ctor(string)
//IL_0015: throw
//IL_0016: ldarg.0
//IL_0017: conv.i1
//IL_0018: ret
if (@value <= 127L)
{
return (sbyte)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_SByte"));
}
}
[System.CLSCompliant(false)]
public static sbyte ToSByte(float @value)
{
// 代码大小 8 (0x8)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r8
//IL_0002: call int8 System.Convert::ToSByte(float64)
//IL_0007: ret
return Convert.ToSByte((double)@value);
}
[System.CLSCompliant(false)]
public static sbyte ToSByte(double @value)
{
// 代码大小 12 (0xc)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: call int32 System.Convert::ToInt32(float64)
//IL_0006: call int8 System.Convert::ToSByte(int32)
//IL_000b: ret
return Convert.ToSByte(Convert.ToInt32(@value));
}
[System.CLSCompliant(false)]
public static sbyte ToSByte(System.Decimal @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: call valuetype System.Decimal System.Decimal::Round(valuetype System.Decimal,
// int32)
//IL_0007: call int8 System.Decimal::ToSByte(valuetype System.Decimal)
//IL_000c: ret
return Decimal.ToSByte(Decimal.Round(@value,0));
}
[System.CLSCompliant(false)]
public static sbyte ToSByte(string @value)
{
// 代码大小 17 (0x11)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0005
//IL_0003: ldc.i4.0
//IL_0004: ret
//IL_0005: ldarg.0
//IL_0006: call class System.Globalization.CultureInfo System.Globalization.CultureInfo::get_CurrentCulture()
//IL_000b: call int8 System.SByte::Parse(string,
// class System.IFormatProvider)
//IL_0010: ret
if (@value == null)
{
return (sbyte)0;
}
else
{
return System.SByte.Parse(@value, CultureInfo.CurrentCulture);
}
}
[System.CLSCompliant(false)]
public static sbyte ToSByte(string @value, System.IFormatProvider provider)
{
// 代码大小 9 (0x9)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.7
//IL_0002: ldarg.1
//IL_0003: call int8 System.SByte::Parse(string,
// valuetype System.Globalization.NumberStyles,
// class System.IFormatProvider)
//IL_0008: ret
return System.SByte.Parse(@value, NumberStyles.Integer, provider);
}
[System.CLSCompliant(false)]
public static sbyte ToSByte(System.DateTime @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.DateTime
//IL_0006: ldnull
//IL_0007: callvirt instance int8 System.IConvertible::ToSByte(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToSByte(null);
}
public static byte ToByte(object @value)
{
// 代码大小 18 (0x12)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldnull
//IL_000a: callvirt instance uint8 System.IConvertible::ToByte(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldc.i4.0
//IL_0011: ret
if (@value == null)
{
return (byte)0;
}
else
{
return ((System.IConvertible)@value).ToByte(null);
}
}
public static byte ToByte(object @value, System.IFormatProvider provider)
{
// 代码大小 18 (0x12)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldarg.1
//IL_000a: callvirt instance uint8 System.IConvertible::ToByte(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldc.i4.0
//IL_0011: ret
if (@value == null)
{
return (byte)0;
}
else
{
return ((System.IConvertible)@value).ToByte(provider);
}
}
public static byte ToByte(bool @value)
{
// 代码大小 7 (0x7)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0005
//IL_0003: ldc.i4.0
//IL_0004: ret
//IL_0005: ldc.i4.1
//IL_0006: ret
if (@value)
{
return (byte)1;
}
else
{
return (byte)0;
}
}
public static byte ToByte(byte @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return @value;
}
public static byte ToByte(char @value)
{
// 代码大小 27 (0x1b)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4 0xff
//IL_0006: ble.s IL_0018
//IL_0008: ldstr "Overflow_Byte"
//IL_000d: call string System.Environment::GetResourceString(string)
//IL_0012: newobj instance void System.OverflowException::.ctor(string)
//IL_0017: throw
//IL_0018: ldarg.0
//IL_0019: conv.u1
//IL_001a: ret
if (@value <= 0xff)
{
return (byte)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Byte"));
}
}
[System.CLSCompliant(false)]
public static byte ToByte(sbyte @value)
{
// 代码大小 23 (0x17)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: bge.s IL_0014
//IL_0004: ldstr "Overflow_Byte"
//IL_0009: call string System.Environment::GetResourceString(string)
//IL_000e: newobj instance void System.OverflowException::.ctor(string)
//IL_0013: throw
//IL_0014: ldarg.0
//IL_0015: conv.u1
//IL_0016: ret
if (@value >= 0)
{
return (byte)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Byte"));
}
}
public static byte ToByte(short @value)
{
// 代码大小 31 (0x1f)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: blt.s IL_000c
//IL_0004: ldarg.0
//IL_0005: ldc.i4 0xff
//IL_000a: ble.s IL_001c
//IL_000c: ldstr "Overflow_Byte"
//IL_0011: call string System.Environment::GetResourceString(string)
//IL_0016: newobj instance void System.OverflowException::.ctor(string)
//IL_001b: throw
//IL_001c: ldarg.0
//IL_001d: conv.u1
//IL_001e: ret
if (@value >= 0 && @value <= 0xff)
{
return (byte)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Byte"));
}
}
[System.CLSCompliant(false)]
public static byte ToByte(ushort @value)
{
// 代码大小 27 (0x1b)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4 0xff
//IL_0006: ble.s IL_0018
//IL_0008: ldstr "Overflow_Byte"
//IL_000d: call string System.Environment::GetResourceString(string)
//IL_0012: newobj instance void System.OverflowException::.ctor(string)
//IL_0017: throw
//IL_0018: ldarg.0
//IL_0019: conv.u1
//IL_001a: ret
if (@vlaue <= 0xff)
{
return (byte)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Byte"));
}
}
public static byte ToByte(int @value)
{
// 代码大小 31 (0x1f)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: blt.s IL_000c
//IL_0004: ldarg.0
//IL_0005: ldc.i4 0xff
//IL_000a: ble.s IL_001c
//IL_000c: ldstr "Overflow_Byte"
//IL_0011: call string System.Environment::GetResourceString(string)
//IL_0016: newobj instance void System.OverflowException::.ctor(string)
//IL_001b: throw
//IL_001c: ldarg.0
//IL_001d: conv.u1
//IL_001e: ret
if (@value >= 0 && @value <= 0xff)
{
return (byte)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Byte"));
}
}
[System.CLSCompliant(false)]
public static byte ToByte(uint @value)
{
// 代码大小 27 (0x1b)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4 0xff
//IL_0006: ble.un.s IL_0018
//IL_0008: ldstr "Overflow_Byte"
//IL_000d: call string System.Environment::GetResourceString(string)
//IL_0012: newobj instance void System.OverflowException::.ctor(string)
//IL_0017: throw
//IL_0018: ldarg.0
//IL_0019: conv.u1
//IL_001a: ret
if (@value <= 0xff)
{
return (byte)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Byte"));
}
}
public static byte ToByte(long @value)
{
// 代码大小 33 (0x21)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: conv.i8
//IL_0003: blt.s IL_000e
//IL_0005: ldarg.0
//IL_0006: ldc.i4 0xff
//IL_000b: conv.i8
//IL_000c: ble.s IL_001e
//IL_000e: ldstr "Overflow_Byte"
//IL_0013: call string System.Environment::GetResourceString(string)
//IL_0018: newobj instance void System.OverflowException::.ctor(string)
//IL_001d: throw
//IL_001e: ldarg.0
//IL_001f: conv.u1
//IL_0020: ret
if (@value >= 0L && @value <= 0xffL)
{
return (byte)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Byte"));
}
}
[System.CLSCompliant(false)]
public static byte ToByte(ulong @value)
{
// 代码大小 28 (0x1c)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4 0xff
//IL_0006: conv.i8
//IL_0007: ble.un.s IL_0019
//IL_0009: ldstr "Overflow_Byte"
//IL_000e: call string System.Environment::GetResourceString(string)
//IL_0013: newobj instance void System.OverflowException::.ctor(string)
//IL_0018: throw
//IL_0019: ldarg.0
//IL_001a: conv.u1
//IL_001b: ret
if (@value <= 0xfful)
{
return (byte)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Byte"));
}
}
public static byte ToByte(float @value)
{
// 代码大小 8 (0x8)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r8
//IL_0002: call uint8 System.Convert::ToByte(float64)
//IL_0007: ret
return Convert.ToSByte((double)@value);
}
public static byte ToByte(double @value)
{
// 代码大小 12 (0xc)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: call int32 System.Convert::ToInt32(float64)
//IL_0006: call uint8 System.Convert::ToByte(int32)
//IL_000b: ret
return Convert.ToByte(Convert.ToInt32(@value));
}
public static byte ToByte(System.Decimal @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: call valuetype System.Decimal System.Decimal::Round(valuetype System.Decimal,
// int32)
//IL_0007: call uint8 System.Decimal::ToByte(valuetype System.Decimal)
//IL_000c: ret
return Decimal.ToByte(Decimal.Round(@value, 0));
}
public static byte ToByte(string @value)
{
// 代码大小 17 (0x11)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0005
//IL_0003: ldc.i4.0
//IL_0004: ret
//IL_0005: ldarg.0
//IL_0006: call class System.Globalization.CultureInfo System.Globalization.CultureInfo::get_CurrentCulture()
//IL_000b: call uint8 System.Byte::Parse(string,
// class System.IFormatProvider)
//IL_0010: ret
if (@value == null)
{
return (byte)0;
}
else
{
return Byte.Parse(@value, CultureInfo.CurrentCulture);
}
}
public static byte ToByte(string @value, System.IFormatProvider provider)
{
// 代码大小 14 (0xe)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0005
//IL_0003: ldc.i4.0
//IL_0004: ret
//IL_0005: ldarg.0
//IL_0006: ldc.i4.7
//IL_0007: ldarg.1
//IL_0008: call uint8 System.Byte::Parse(string,
// valuetype System.Globalization.NumberStyles,
// class System.IFormatProvider)
//IL_000d: ret
if (@value == null)
{
return (byte)0;
}
else
{
return Byte.Parse(@value, NumberStyles.Integer, provider);
}
}
public static byte ToByte(System.DateTime @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.DateTime
//IL_0006: ldnull
//IL_0007: callvirt instance uint8 System.IConvertible::ToByte(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToByte(null);
}
public static short ToInt16(object @value)
{
// 代码大小 18 (0x12)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldnull
//IL_000a: callvirt instance int16 System.IConvertible::ToInt16(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldc.i4.0
//IL_0011: ret
if (@value == null)
{
return (short)0;
}
else
{
return ((System.IConvertible)@value).ToInt16(null);
}
}
public static short ToInt16(object @value, System.IFormatProvider provider)
{
// 代码大小 18 (0x12)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldarg.1
//IL_000a: callvirt instance int16 System.IConvertible::ToInt16(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldc.i4.0
//IL_0011: ret
if (@value == null)
{
return (short)0;
}
else
{
return ((System.IConvertible)@value).ToInt16(provider);
}
}
public static short ToInt16(bool @value)
{
// 代码大小 7 (0x7)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0005
//IL_0003: ldc.i4.0
//IL_0004: ret
//IL_0005: ldc.i4.1
//IL_0006: ret
if (@value)
{
return (short)1;
}
else
{
return (short)0;
}
}
public static short ToInt16(char @value)
{
// 代码大小 27 (0x1b)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4 0x7fff
//IL_0006: ble.s IL_0018
//IL_0008: ldstr "Overflow_Int16"
//IL_000d: call string System.Environment::GetResourceString(string)
//IL_0012: newobj instance void System.OverflowException::.ctor(string)
//IL_0017: throw
//IL_0018: ldarg.0
//IL_0019: conv.i2
//IL_001a: ret
if (@value <= 0x7fff)
{
return (short)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Int16"));
}
}
[System.CLSCompliant(false)]
public static short ToInt16(sbyte @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return @value;
}
public static short ToInt16(byte @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return @value;
}
[System.CLSCompliant(false)]
public static short ToInt16(ushort @value)
{
// 代码大小 27 (0x1b)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4 0x7fff
//IL_0006: ble.s IL_0018
//IL_0008: ldstr "Overflow_Int16"
//IL_000d: call string System.Environment::GetResourceString(string)
//IL_0012: newobj instance void System.OverflowException::.ctor(string)
//IL_0017: throw
//IL_0018: ldarg.0
//IL_0019: conv.i2
//IL_001a: ret
if (@value <= 0x7fff)
{
return (short)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Int16"));
}
}
public static short ToInt16(int @value)
{
// 代码大小 35 (0x23)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4 0xffff8000
//IL_0006: blt.s IL_0010
//IL_0008: ldarg.0
//IL_0009: ldc.i4 0x7fff
//IL_000e: ble.s IL_0020
//IL_0010: ldstr "Overflow_Int16"
//IL_0015: call string System.Environment::GetResourceString(string)
//IL_001a: newobj instance void System.OverflowException::.ctor(string)
//IL_001f: throw
//IL_0020: ldarg.0
//IL_0021: conv.i2
//IL_0022: ret
if (@value >= 0xffff8000 && @value <= 0x7fff)
{
return (short)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Int16"));
}
}
[System.CLSCompliant(false)]
public static short ToInt16(uint @value)
{
// 代码大小 29 (0x1d)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.u8
//IL_0002: ldc.i4 0x7fff
//IL_0007: conv.i8
//IL_0008: ble.s IL_001a
//IL_000a: ldstr "Overflow_Int16"
//IL_000f: call string System.Environment::GetResourceString(string)
//IL_0014: newobj instance void System.OverflowException::.ctor(string)
//IL_0019: throw
//IL_001a: ldarg.0
//IL_001b: conv.i2
//IL_001c: ret
if (@value <= 0x7fff)
{
return (short)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Int16"));
}
}
public static short ToInt16(short @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return @value;
}
public static short ToInt16(long @value)
{
// 代码大小 37 (0x25)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4 0xffff8000
//IL_0006: conv.i8
//IL_0007: blt.s IL_0012
//IL_0009: ldarg.0
//IL_000a: ldc.i4 0x7fff
//IL_000f: conv.i8
//IL_0010: ble.s IL_0022
//IL_0012: ldstr "Overflow_Int16"
//IL_0017: call string System.Environment::GetResourceString(string)
//IL_001c: newobj instance void System.OverflowException::.ctor(string)
//IL_0021: throw
//IL_0022: ldarg.0
//IL_0023: conv.i2
//IL_0024: ret
if (@value >= (long)(int)0xffff8000 && @value <= 0x7fff)
{
return (short)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Int16"));
}
}
[System.CLSCompliant(false)]
public static short ToInt16(ulong @value)
{
// 代码大小 28 (0x1c)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4 0x7fff
//IL_0006: conv.i8
//IL_0007: ble.un.s IL_0019
//IL_0009: ldstr "Overflow_Int16"
//IL_000e: call string System.Environment::GetResourceString(string)
//IL_0013: newobj instance void System.OverflowException::.ctor(string)
//IL_0018: throw
//IL_0019: ldarg.0
//IL_001a: conv.i2
//IL_001b: ret
if (@value <= 0x7fff)
{
return (short)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Int16"));
}
}
public static short ToInt16(float @value)
{
// 代码大小 8 (0x8)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r8
//IL_0002: call int16 System.Convert::ToInt16(float64)
//IL_0007: ret
return Convert.ToInt16((double)@value);
}
public static short ToInt16(double @value)
{
// 代码大小 12 (0xc)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: call int32 System.Convert::ToInt32(float64)
//IL_0006: call int16 System.Convert::ToInt16(int32)
//IL_000b: ret
return Convert.ToInt16(Convert.ToInt32(@value));
}
public static short ToInt16(System.Decimal @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: call valuetype System.Decimal System.Decimal::Round(valuetype System.Decimal,
// int32)
//IL_0007: call int16 System.Decimal::ToInt16(valuetype System.Decimal)
//IL_000c: ret
return Decimal.ToInt16(Decimal.Round(@value, 0));
}
public static short ToInt16(string @value)
{
// 代码大小 17 (0x11)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0005
//IL_0003: ldc.i4.0
//IL_0004: ret
//IL_0005: ldarg.0
//IL_0006: call class System.Globalization.CultureInfo System.Globalization.CultureInfo::get_CurrentCulture()
//IL_000b: call int16 System.Int16::Parse(string,
// class System.IFormatProvider)
//IL_0010: ret
if (@value == null)
{
return (short)0;
}
else
{
return Int16.Parse(@value, CultureInfo.CurrentCulture);
}
}
public static short ToInt16(string @value, System.IFormatProvider provider)
{
// 代码大小 14 (0xe)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0005
//IL_0003: ldc.i4.0
//IL_0004: ret
//IL_0005: ldarg.0
//IL_0006: ldc.i4.7
//IL_0007: ldarg.1
//IL_0008: call int16 System.Int16::Parse(string,
// valuetype System.Globalization.NumberStyles,
// class System.IFormatProvider)
//IL_000d: ret
if (@value == null)
{
return (short)0;
}
else
{
return Int16.Parse(@value, NumberStyles.Integer, provider);
}
}
public static short ToInt16(System.DateTime @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.DateTime
//IL_0006: ldnull
//IL_0007: callvirt instance int16 System.IConvertible::ToInt16(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToInt16(null);
}
[System.CLSCompliant(false)]
public static ushort ToUInt16(object @value)
{
// 代码大小 18 (0x12)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldnull
//IL_000a: callvirt instance uint16 System.IConvertible::ToUInt16(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldc.i4.0
//IL_0011: ret
if (@value == null)
{
return (ushort)0;
}
else
{
return ((System.IConvertible)@value).ToUInt16(null);
}
}
[System.CLSCompliant(false)]
public static ushort ToUInt16(object @value, System.IFormatProvider provider)
{
// 代码大小 18 (0x12)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldarg.1
//IL_000a: callvirt instance uint16 System.IConvertible::ToUInt16(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldc.i4.0
//IL_0011: ret
if (@value == null)
{
return (ushort)0;
}
else
{
return ((System.IConvertible)@value).ToUInt16(provider);
}
}
[System.CLSCompliant(false)]
public static ushort ToUInt16(bool @value)
{
// 代码大小 7 (0x7)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0005
//IL_0003: ldc.i4.0
//IL_0004: ret
//IL_0005: ldc.i4.1
//IL_0006: ret
if (@value)
{
return (ushort)1;
}
else
{
return (ushort)0;
}
}
[System.CLSCompliant(false)]
public static ushort ToUInt16(char @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return (ushort)@value;
}
[System.CLSCompliant(false)]
public static ushort ToUInt16(byte @value)
{
// 代码大小 23 (0x17)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: bge.s IL_0014
//IL_0004: ldstr "Overflow_UInt16"
//IL_0009: call string System.Environment::GetResourceString(string)
//IL_000e: newobj instance void System.OverflowException::.ctor(string)
//IL_0013: throw
//IL_0014: ldarg.0
//IL_0015: conv.u2
//IL_0016: ret
if (@value >= 0)
{
return (ushort)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_UInt16"));
}
}
[System.CLSCompliant(false)]
public static ushort ToUInt16(byte @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return @value;
}
[System.CLSCompliant(false)]
public static ushort ToUInt16(short @value)
{
// 代码大小 23 (0x17)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: bge.s IL_0014
//IL_0004: ldstr "Overflow_UInt16"
//IL_0009: call string System.Environment::GetResourceString(string)
//IL_000e: newobj instance void System.OverflowException::.ctor(string)
//IL_0013: throw
//IL_0014: ldarg.0
//IL_0015: conv.u2
//IL_0016: ret
if (@value >= 0)
{
return (ushort)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_UInt16"));
}
}
[System.CLSCompliant(false)]
public static ushort ToUInt16(int @value)
{
// 代码大小 31 (0x1f)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: blt.s IL_000c
//IL_0004: ldarg.0
//IL_0005: ldc.i4 0xffff
//IL_000a: ble.s IL_001c
//IL_000c: ldstr "Overflow_UInt16"
//IL_0011: call string System.Environment::GetResourceString(string)
//IL_0016: newobj instance void System.OverflowException::.ctor(string)
//IL_001b: throw
//IL_001c: ldarg.0
//IL_001d: conv.u2
//IL_001e: ret
if (@value >= 0 && @value <= 0xffff)
{
return (ushort)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_UInt16"));
}
}
[System.CLSCompliant(false)]
public static ushort ToUInt16(ushort @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return @value;
}
[System.CLSCompliant(false)]
public static ushort ToUInt16(uint @value)
{
// 代码大小 27 (0x1b)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4 0xffff
//IL_0006: ble.un.s IL_0018
//IL_0008: ldstr "Overflow_UInt16"
//IL_000d: call string System.Environment::GetResourceString(string)
//IL_0012: newobj instance void System.OverflowException::.ctor(string)
//IL_0017: throw
//IL_0018: ldarg.0
//IL_0019: conv.u2
//IL_001a: ret
if (@value <= 0xffff)
{
return (ushort)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_UInt16"));
}
}
[System.CLSCompliant(false)]
public static ushort ToUInt16(long @value)
{
// 代码大小 33 (0x21)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: conv.i8
//IL_0003: blt.s IL_000e
//IL_0005: ldarg.0
//IL_0006: ldc.i4 0xffff
//IL_000b: conv.i8
//IL_000c: ble.s IL_001e
//IL_000e: ldstr "Overflow_UInt16"
//IL_0013: call string System.Environment::GetResourceString(string)
//IL_0018: newobj instance void System.OverflowException::.ctor(string)
//IL_001d: throw
//IL_001e: ldarg.0
//IL_001f: conv.u2
//IL_0020: ret
if (@value >= 0 && @value <= 0xffff)
{
return (ushort)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_UInt16"));
}
}
[System.CLSCompliant(false)]
public static ushort ToUInt16(ulong @value)
{
// 代码大小 28 (0x1c)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4 0xffff
//IL_0006: conv.i8
//IL_0007: ble.un.s IL_0019
//IL_0009: ldstr "Overflow_UInt16"
//IL_000e: call string System.Environment::GetResourceString(string)
//IL_0013: newobj instance void System.OverflowException::.ctor(string)
//IL_0018: throw
//IL_0019: ldarg.0
//IL_001a: conv.u2
//IL_001b: ret
if (@value <= 0xffff)
{
return (ushort)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_UInt16"));
}
}
[System.CLSCompliant(false)]
public static ushort ToUInt16(float @value)
{
// 代码大小 8 (0x8)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r8
//IL_0002: call uint16 System.Convert::ToUInt16(float64)
//IL_0007: ret
return Convert.ToUInt16((double)@value);
}
[System.CLSCompliant(false)]
public static ushort ToUInt16(double @value)
{
// 代码大小 12 (0xc)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: call int32 System.Convert::ToInt32(float64)
//IL_0006: call uint16 System.Convert::ToUInt16(int32)
//IL_000b: ret
return Convert.ToUInt16(Convert.ToInt32(@value));
}
[System.CLSCompliant(false)]
public static ushort ToUInt16(System.Decimal @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: call valuetype System.Decimal System.Decimal::Round(valuetype System.Decimal,
// int32)
//IL_0007: call uint16 System.Decimal::ToUInt16(valuetype System.Decimal)
//IL_000c: ret
return Decimal.ToUInt16(Decimal.Round(@value, 0));
}
[System.CLSCompliant(false)]
public static ushort ToUInt16(string @value)
{
// 代码大小 17 (0x11)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0005
//IL_0003: ldc.i4.0
//IL_0004: ret
//IL_0005: ldarg.0
//IL_0006: call class System.Globalization.CultureInfo System.Globalization.CultureInfo::get_CurrentCulture()
//IL_000b: call uint16 System.UInt16::Parse(string,
// class System.IFormatProvider)
//IL_0010: ret
if (@value == null)
{
return (ushort)0;
}
else
{
return UInt16.Parse(@value, CultureInfo.CurrentCulture);
}
}
[System.CLSCompliant(false)]
public static ushort ToUInt16(string @value, System.IFormatProvider provider)
{
// 代码大小 14 (0xe)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0005
//IL_0003: ldc.i4.0
//IL_0004: ret
//IL_0005: ldarg.0
//IL_0006: ldc.i4.7
//IL_0007: ldarg.1
//IL_0008: call uint16 System.UInt16::Parse(string,
// valuetype System.Globalization.NumberStyles,
// class System.IFormatProvider)
//IL_000d: ret
if (@value == null)
{
return (ushort)0;
}
else
{
return UInt16.Parse(@value, NumberStyles.Integer, provider);
}
}
[System.CLSCompliant(false)]
public static ushort ToUInt16(System.DateTime @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.DateTime
//IL_0006: ldnull
//IL_0007: callvirt instance uint16 System.IConvertible::ToUInt16(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToUInt16(null);
}
public static int ToInt32(object @value)
{
// 代码大小 18 (0x12)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldnull
//IL_000a: callvirt instance int32 System.IConvertible::ToInt32(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldc.i4.0
//IL_0011: ret
if (@value == null)
{
return 0;
}
else
{
return ((System.IConvertible)@value).ToInt32(null);
}
}
public static int ToInt32(object @value, System.IFormatProvider provider)
{
// 代码大小 18 (0x12)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldarg.1
//IL_000a: callvirt instance int32 System.IConvertible::ToInt32(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldc.i4.0
//IL_0011: ret
if (@value == null)
{
return 0;
}
else
{
return ((System.IConvertible)@value).ToInt32(provider);
}
}
public static int ToInt32(bool @value)
{
// 代码大小 7 (0x7)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0005
//IL_0003: ldc.i4.0
//IL_0004: ret
//IL_0005: ldc.i4.1
//IL_0006: ret
if (@value)
{
return 1;
}
else
{
return 0;
}
}
public static int ToInt32(char @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return (int)@value;
}
[System.CLSCompliant(false)]
public static int ToInt32(sbyte @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return @value;
}
public static int ToInt32(byte @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return @value;
}
public static int ToInt32(short @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return @value;
}
[System.CLSCompliant(false)]
public static int ToInt32(ushort @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return @value;
}
[System.CLSCompliant(false)]
public static int ToInt32(uint @value)
{
// 代码大小 26 (0x1a)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4 0x7fffffff
//IL_0006: ble.un.s IL_0018
//IL_0008: ldstr "Overflow_Int32"
//IL_000d: call string System.Environment::GetResourceString(string)
//IL_0012: newobj instance void System.OverflowException::.ctor(string)
//IL_0017: throw
//IL_0018: ldarg.0
//IL_0019: ret
if (@value <= 0x7fffffff)
{
return @value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Int32"));
}
}
public static int ToInt32(int @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return @value;
}
public static int ToInt32(long @value)
{
// 代码大小 37 (0x25)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4 0x80000000
//IL_0006: conv.i8
//IL_0007: blt.s IL_0012
//IL_0009: ldarg.0
//IL_000a: ldc.i4 0x7fffffff
//IL_000f: conv.i8
//IL_0010: ble.s IL_0022
//IL_0012: ldstr "Overflow_Int32"
//IL_0017: call string System.Environment::GetResourceString(string)
//IL_001c: newobj instance void System.OverflowException::.ctor(string)
//IL_0021: throw
//IL_0022: ldarg.0
//IL_0023: conv.i4
//IL_0024: ret
if (@value >= (long)(int)0x80000000 && @value <= 0x7fffffff)
{
return (int)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Int32"));
}
}
[System.CLSCompliant(false)]
public static int ToInt32(ulong @value)
{
// 代码大小 28 (0x1c)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4 0x7fffffff
//IL_0006: conv.i8
//IL_0007: ble.un.s IL_0019
//IL_0009: ldstr "Overflow_Int32"
//IL_000e: call string System.Environment::GetResourceString(string)
//IL_0013: newobj instance void System.OverflowException::.ctor(string)
//IL_0018: throw
//IL_0019: ldarg.0
//IL_001a: conv.i4
//IL_001b: ret
if (@value <= 0x7fffffff)
{
return (int)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Int32"));
}
}
public static int ToInt32(float @value)
{
// 代码大小 8 (0x8)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r8
//IL_0002: call int32 System.Convert::ToInt32(float64)
//IL_0007: ret
return Convert.ToInt32((double)@value);
}
public static int ToInt32(double @value)
{
// 代码大小 138 (0x8a)
//.maxstack 2
//.locals init (int32 V_0,
// float64 V_1,
// int32 V_2,
// float64 V_3)
//IL_0000: ldarg.0
//IL_0001: ldc.r8 0.0
//IL_000a: blt.un.s IL_0043
//IL_000c: ldarg.0
//IL_000d: ldc.r8 2147483647.5
//IL_0016: bge.un.s IL_007a
//IL_0018: ldarg.0
//IL_0019: conv.i4
//IL_001a: stloc.0
//IL_001b: ldarg.0
//IL_001c: ldloc.0
//IL_001d: conv.r8
//IL_001e: sub
//IL_001f: stloc.1
//IL_0020: ldloc.1
//IL_0021: ldc.r8 0.5
//IL_002a: bgt.s IL_003d
//IL_002c: ldloc.1
//IL_002d: ldc.r8 0.5
//IL_0036: bne.un.s IL_0041
//IL_0038: ldloc.0
//IL_0039: ldc.i4.1
//IL_003a: and
//IL_003b: brfalse.s IL_0041
//IL_003d: ldloc.0
//IL_003e: ldc.i4.1
//IL_003f: add
//IL_0040: stloc.0
//IL_0041: ldloc.0
//IL_0042: ret
//IL_0043: ldarg.0
//IL_0044: ldc.r8 -2147483648.5
//IL_004d: blt.un.s IL_007a
//IL_004f: ldarg.0
//IL_0050: conv.i4
//IL_0051: stloc.2
//IL_0052: ldarg.0
//IL_0053: ldloc.2
//IL_0054: conv.r8
//IL_0055: sub
//IL_0056: stloc.3
//IL_0057: ldloc.3
//IL_0058: ldc.r8 -0.5
//IL_0061: blt.s IL_0074
//IL_0063: ldloc.3
//IL_0064: ldc.r8 -0.5
//IL_006d: bne.un.s IL_0078
//IL_006f: ldloc.2
//IL_0070: ldc.i4.1
//IL_0071: and
//IL_0072: brfalse.s IL_0078
//IL_0074: ldloc.2
//IL_0075: ldc.i4.1
//IL_0076: sub
//IL_0077: stloc.2
//IL_0078: ldloc.2
//IL_0079: ret
//IL_007a: ldstr "Overflow_Int32"
//IL_007f: call string System.Environment::GetResourceString(string)
//IL_0084: newobj instance void System.OverflowException::.ctor(string)
//IL_0089: throw
int V_0;
double V_1;
int V_2;
double V_3;
if(@value<0.0D)
{
//IL_0043
if(@value<-2147483648.5)
{
//IL_007a
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Int32"));
}
else
{
//IL_004f
V_2=(int)@value;
V_3=@value-V_2;
if(V_3<-0.5d)
{
//IL_0074
V_2 = V_2 - 1;
return V_2;
}
else
{
//IL_0063
if(V_3==-0.5)
{
//IL_006f
if(V_2&1==0)
{
//IL_0078
return V_2;
}
else
{
//IL_0074
V_2 = V_2 - 1;
return V_2;
}
}
else
{
//IL_0078
return V_2;
}
}
}
}
else
{
if(@value>=2147483647.5D)
{
//IL_007a
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Int32"));
}
else
{
//IL_0018
V_0=(int)@value;
V_1=@value-V_0;
if(V_1>0.5d)
{
//IL_003d
V_0 = V_0 + 1;
}
else if (V_1 == 0.5d && (V_0 & 1 == 1))
{
//IL_003d
V_0 = V_0 + 1;
}
return V_0;
}
}
}
public static int ToInt32(System.Decimal @value)
{
// 代码大小 7 (0x7)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: call int32 System.Decimal::FCallToInt32(valuetype System.Decimal)
//IL_0006: ret
return Decimal.FCallToInt32(@value);
}
public static int ToInt32(string @value)
{
// 代码大小 17 (0x11)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0005
//IL_0003: ldc.i4.0
//IL_0004: ret
//IL_0005: ldarg.0
//IL_0006: call class System.Globalization.CultureInfo System.Globalization.CultureInfo::get_CurrentCulture()
//IL_000b: call int32 System.Int32::Parse(string,
// class System.IFormatProvider)
//IL_0010: ret
if (@value == null)
{
return 0;
}
else
{
return Int32.Parse(@value,CultureInfo.CurrentCulture);
}
}
public static int ToInt32(string @value, System.IFormatProvider provider)
{
// 代码大小 14 (0xe)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0005
//IL_0003: ldc.i4.0
//IL_0004: ret
//IL_0005: ldarg.0
//IL_0006: ldc.i4.7
//IL_0007: ldarg.1
//IL_0008: call int32 System.Int32::Parse(string,
// valuetype System.Globalization.NumberStyles,
// class System.IFormatProvider)
//IL_000d: ret
if (@value == null)
{
return 0;
}
else
{
return Int32.Parse(@value, NumberStyles.Integer, provider);
}
}
public static int ToInt32(System.DateTime @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.DateTime
//IL_0006: ldnull
//IL_0007: callvirt instance int32 System.IConvertible::ToInt32(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToInt32(null);
}
[System.CLSCompliant(false)]
public static uint ToUInt32(object @value)
{
// 代码大小 18 (0x12)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldnull
//IL_000a: callvirt instance uint32 System.IConvertible::ToUInt32(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldc.i4.0
//IL_0011: ret
if (@value == null)
{
return (uint)0;
}
else
{
return ((System.IConvertible)@value).ToUInt32(null);
}
}
[System.CLSCompliant(false)]
public static uint ToUInt32(object @value, System.IFormatProvider provider)
{
// 代码大小 18 (0x12)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldarg.1
//IL_000a: callvirt instance uint32 System.IConvertible::ToUInt32(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldc.i4.0
//IL_0011: ret
if (@value == null)
{
return (uint)0;
}
else
{
return ((System.IConvertible)@value).ToUInt32(provider);
}
}
[System.CLSCompliant(false)]
public static uint ToUInt32(bool @value)
{
// 代码大小 7 (0x7)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0005
//IL_0003: ldc.i4.0
//IL_0004: ret
//IL_0005: ldc.i4.1
//IL_0006: ret
if (@value)
{
return (uint)1;
}
else
{
return (uint)0;
}
}
[System.CLSCompliant(false)]
public static uint ToUInt32(char @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return @value;
}
[System.CLSCompliant(false)]
public static uint ToUInt32(sbyte @value)
{
// 代码大小 22 (0x16)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: bge.s IL_0014
//IL_0004: ldstr "Overflow_UInt32"
//IL_0009: call string System.Environment::GetResourceString(string)
//IL_000e: newobj instance void System.OverflowException::.ctor(string)
//IL_0013: throw
//IL_0014: ldarg.0
//IL_0015: ret
if (@value >= 0)
{
return @value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_UInt32"));
}
}
[System.CLSCompliant(false)]
public static uint ToUInt32(byte @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return @value;
}
[System.CLSCompliant(false)]
public static uint ToUInt32(short @value)
{
// 代码大小 22 (0x16)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: bge.s IL_0014
//IL_0004: ldstr "Overflow_UInt32"
//IL_0009: call string System.Environment::GetResourceString(string)
//IL_000e: newobj instance void System.OverflowException::.ctor(string)
//IL_0013: throw
//IL_0014: ldarg.0
//IL_0015: ret
if (@value >= 0)
{
return @value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_UInt32"));
}
}
[System.CLSCompliant(false)]
public static uint ToUInt32(ushort @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return @value;
}
[System.CLSCompliant(false)]
public static uint ToUInt32(int @value)
{
// 代码大小 22 (0x16)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: bge.s IL_0014
//IL_0004: ldstr "Overflow_UInt32"
//IL_0009: call string System.Environment::GetResourceString(string)
//IL_000e: newobj instance void System.OverflowException::.ctor(string)
//IL_0013: throw
//IL_0014: ldarg.0
//IL_0015: ret
if (@value >= 0)
{
return @value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_UInt32"));
}
}
[System.CLSCompliant(false)]
public static uint ToUInt32(uint @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return @value;
}
[System.CLSCompliant(false)]
public static uint ToUInt32(long @value)
{
// 代码大小 29 (0x1d)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: conv.i8
//IL_0003: blt.s IL_000a
//IL_0005: ldarg.0
//IL_0006: ldc.i4.m1
//IL_0007: conv.u8
//IL_0008: ble.s IL_001a
//IL_000a: ldstr "Overflow_UInt32"
//IL_000f: call string System.Environment::GetResourceString(string)
//IL_0014: newobj instance void System.OverflowException::.ctor(string)
//IL_0019: throw
//IL_001a: ldarg.0
//IL_001b: conv.u4
//IL_001c: ret
if (@value >= 0 && @value <= 0xffffffff)
{
return (uint)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_UInt32"));
}
}
[System.CLSCompliant(false)]
public static uint ToUInt32(ulong @value)
{
// 代码大小 24 (0x18)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.m1
//IL_0002: conv.u8
//IL_0003: ble.un.s IL_0015
//IL_0005: ldstr "Overflow_UInt32"
//IL_000a: call string System.Environment::GetResourceString(string)
//IL_000f: newobj instance void System.OverflowException::.ctor(string)
//IL_0014: throw
//IL_0015: ldarg.0
//IL_0016: conv.u4
//IL_0017: ret
if (@value <= 0xfffffffful)
{
return (uint)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_UInt32"));
}
}
[System.CLSCompliant(false)]
public static uint ToUInt32(float @value)
{
// 代码大小 8 (0x8)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r8
//IL_0002: call uint32 System.Convert::ToUInt32(float64)
//IL_0007: ret
return System.Convert.ToUInt32((double)@value);
}
[System.CLSCompliant(false)]
public static uint ToUInt32(double @value)
{
// 代码大小 84 (0x54)
//.maxstack 2
//.locals init (uint32 V_0,
// float64 V_1)
//IL_0000: ldarg.0
//IL_0001: ldc.r8 -0.5
//IL_000a: blt.un.s IL_0044
//IL_000c: ldarg.0
//IL_000d: ldc.r8 4294967295.5
//IL_0016: bge.un.s IL_0044
//IL_0018: ldarg.0
//IL_0019: conv.u4
//IL_001a: stloc.0
//IL_001b: ldarg.0
//IL_001c: ldloc.0
//IL_001d: conv.r.un
//IL_001e: conv.r8
//IL_001f: sub
//IL_0020: stloc.1
//IL_0021: ldloc.1
//IL_0022: ldc.r8 0.5
//IL_002b: bgt.s IL_003e
//IL_002d: ldloc.1
//IL_002e: ldc.r8 0.5
//IL_0037: bne.un.s IL_0042
//IL_0039: ldloc.0
//IL_003a: ldc.i4.1
//IL_003b: and
//IL_003c: brfalse.s IL_0042
//IL_003e: ldloc.0
//IL_003f: ldc.i4.1
//IL_0040: add
//IL_0041: stloc.0
//IL_0042: ldloc.0
//IL_0043: ret
//IL_0044: ldstr "Overflow_UInt32"
//IL_0049: call string System.Environment::GetResourceString(string)
//IL_004e: newobj instance void System.OverflowException::.ctor(string)
//IL_0053: throw
uint V_0;
double V_1;
if(@value>=-0.5&&@value<4294967295.5)
{
//IL_0018
V_0=(uint)@value;
V_1=@value-(double)V_0;
if (V_1 <= 0.5D)
{
if (V_1 == 0.5D)
{
//IL_0039
if (V_0 & 1 != 0)//对于置于中央的数使用逢奇进位
{
V_0 = V_0 + 1;
//IL_0042
}
}
}
else
{
V_0 = V_0 + 1;
}
//IL_0042
return V_0;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_UInt32"));
}
}
[System.CLSCompliant(false)]
public static uint ToUInt32(System.Decimal @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: call valuetype System.Decimal System.Decimal::Round(valuetype System.Decimal,
// int32)
//IL_0007: call uint32 System.Decimal::ToUInt32(valuetype System.Decimal)
//IL_000c: ret
System.Decimal.ToUInt32(System.Decimal.Round(@value,0));
}
[System.CLSCompliant(false)]
public static uint ToUInt32(string @value)
{
// 代码大小 17 (0x11)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0005
//IL_0003: ldc.i4.0
//IL_0004: ret
//IL_0005: ldarg.0
//IL_0006: call class System.Globalization.CultureInfo System.Globalization.CultureInfo::get_CurrentCulture()
//IL_000b: call uint32 System.UInt32::Parse(string,
// class System.IFormatProvider)
//IL_0010: ret
if (@value == null)
{
return 0;
}
else
{
return System.UInt32.Parse(@value, System.Globalization.CultureInfo.CurrentCulture);
}
}
[System.CLSCompliant(false)]
public static uint ToUInt32(string @value, System.IFormatProvider provider)
{
// 代码大小 14 (0xe)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0005
//IL_0003: ldc.i4.0
//IL_0004: ret
//IL_0005: ldarg.0
//IL_0006: ldc.i4.7
//IL_0007: ldarg.1
//IL_0008: call uint32 System.UInt32::Parse(string,
// valuetype System.Globalization.NumberStyles,
// class System.IFormatProvider)
//IL_000d: ret
if (@value == null)
{
return 0;
}
else
{
return System.UInt32.Parse(@value, System.Globalization.NumberStyles.Integer, provider);
}
}
[System.CLSCompliant(false)]
public static uint ToUInt32(System.DateTime @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.DateTime
//IL_0006: ldnull
//IL_0007: callvirt instance uint32 System.IConvertible::ToUInt32(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToUInt32(null);
}
public static long ToInt64(object @value)
{
// 代码大小 19 (0x13)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldnull
//IL_000a: callvirt instance int64 System.IConvertible::ToInt64(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldc.i4.0
//IL_0011: conv.i8
//IL_0012: ret
if (@value == null)
{
return 0L;
}
else
{
return ((System.IConvertible)@value).ToInt64(null);
}
}
public static long ToInt64(object @value, System.IFormatProvider provider)
{
// 代码大小 19 (0x13)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldarg.1
//IL_000a: callvirt instance int64 System.IConvertible::ToInt64(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldc.i4.0
//IL_0011: conv.i8
//IL_0012: ret
if (@value == null)
{
return 0L;
}
else
{
return ((System.IConvertible)@value).ToInt64(provider);
}
}
public static long ToInt64(bool @value)
{
// 代码大小 9 (0x9)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0006
//IL_0003: ldc.i4.0
//IL_0004: br.s IL_0007
//IL_0006: ldc.i4.1
//IL_0007: conv.i8
//IL_0008: ret
if (@value)
{
return 1L;
}
else
{
return 0L;
}
}
public static long ToInt64(char @value)
{
// 代码大小 3 (0x3)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.u8
//IL_0002: ret
return @value;
}
[System.CLSCompliant(false)]
public static long ToInt64(sbyte @value)
{
// 代码大小 3 (0x3)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.i8
//IL_0002: ret
return @value;
}
public static long ToInt64(byte @value)
{
// 代码大小 3 (0x3)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.u8
//IL_0002: ret
return @value;
}
public static long ToInt64(short @value)
{
// 代码大小 3 (0x3)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.i8
//IL_0002: ret
return @value;
}
[System.CLSCompliant(false)]
public static long ToInt64(ushort @value)
{
// 代码大小 3 (0x3)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.u8
//IL_0002: ret
return @value;
}
public static long ToInt64(int @value)
{
// 代码大小 3 (0x3)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.i8
//IL_0002: ret
return @value;
}
[System.CLSCompliant(false)]
public static long ToInt64(uint @value)
{
// 代码大小 3 (0x3)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.u8
//IL_0002: ret
return @value;
}
[System.CLSCompliant(false)]
public static long ToInt64(ulong @value)
{
// 代码大小 30 (0x1e)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i8 0x7fffffffffffffff
//IL_000a: ble.un.s IL_001c
//IL_000c: ldstr "Overflow_Int64"
//IL_0011: call string System.Environment::GetResourceString(string)
//IL_0016: newobj instance void System.OverflowException::.ctor(string)
//IL_001b: throw
//IL_001c: ldarg.0
//IL_001d: ret
if (@value <= 0x7ffffffffffffffful)
{
return (long)@value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Int64"));
}
}
public static long ToInt64(long @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return @value;
}
public static long ToInt64(float @value)
{
// 代码大小 8 (0x8)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r8
//IL_0002: call int64 System.Convert::ToInt64(float64)
//IL_0007: ret
return System.Convert.ToInt64((double)@value);
}
public static long ToInt64(double @value)
{
// 代码大小 8 (0x8)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: call float64 System.Math::Round(float64)
//IL_0006: conv.ovf.i8
//IL_0007: ret
return checked((long) System.Math.Round(@value));
}
public static long ToInt64(System.Decimal @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: call valuetype System.Decimal System.Decimal::Round(valuetype System.Decimal,
// int32)
//IL_0007: call int64 System.Decimal::ToInt64(valuetype System.Decimal)
//IL_000c: ret
return System.Decimal.ToInt64(System.Decimal.Round(@value,0));
}
public static long ToInt64(string @value)
{
// 代码大小 18 (0x12)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0006
//IL_0003: ldc.i4.0
//IL_0004: conv.i8
//IL_0005: ret
//IL_0006: ldarg.0
//IL_0007: call class System.Globalization.CultureInfo System.Globalization.CultureInfo::get_CurrentCulture()
//IL_000c: call int64 System.Int64::Parse(string,
// class System.IFormatProvider)
//IL_0011: ret
if (@value == null)
{
return 0L;
}
else
{
return System.Int64.Parse(@value,System.Globalization.CultureInfo.CurrentCulture);
}
}
public static long ToInt64(string @value, System.IFormatProvider provider)
{
// 代码大小 15 (0xf)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0006
//IL_0003: ldc.i4.0
//IL_0004: conv.i8
//IL_0005: ret
//IL_0006: ldarg.0
//IL_0007: ldc.i4.7
//IL_0008: ldarg.1
//IL_0009: call int64 System.Int64::Parse(string,
// valuetype System.Globalization.NumberStyles,
// class System.IFormatProvider)
//IL_000e: ret
if (@value == null)
{
return 0L;
}
else
{
return System.Int64.Parse(@value, NumberStyles.Integer,provider);
}
}
public static long ToInt64(System.DateTime @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.DateTime
//IL_0006: ldnull
//IL_0007: callvirt instance int64 System.IConvertible::ToInt64(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToInt64(null);
}
[System.CLSCompliant(false)]
public static ulong ToUInt64(object @value)
{
// 代码大小 19 (0x13)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldnull
//IL_000a: callvirt instance uint64 System.IConvertible::ToUInt64(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldc.i4.0
//IL_0011: conv.i8
//IL_0012: ret
if (@value == null)
{
return 0ul;
}
else
{
return ((System.IConvertible)@value).ToUInt64(null);
}
}
[System.CLSCompliant(false)]
public static ulong ToUInt64(object @value, System.IFormatProvider provider)
{
// 代码大小 19 (0x13)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldarg.1
//IL_000a: callvirt instance uint64 System.IConvertible::ToUInt64(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldc.i4.0
//IL_0011: conv.i8
//IL_0012: ret
if (@value == null)
{
return 0ul;
}
else
{
return ((System.IConvertible)@value).ToUInt64(provider);
}
}
[System.CLSCompliant(false)]
public static ulong ToUInt64(bool @value)
{
// 代码大小 9 (0x9)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0006
//IL_0003: ldc.i4.0
//IL_0004: conv.i8
//IL_0005: ret
//IL_0006: ldc.i4.1
//IL_0007: conv.i8
//IL_0008: ret
if (@value)
{
return 1ul;
}
else
{
return 0ul;
}
}
[System.CLSCompliant(false)]
public static ulong ToUInt64(char @value)
{
// 代码大小 3 (0x3)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.u8
//IL_0002: ret
return @value;
}
[System.CLSCompliant(false)]
public static ulong ToUInt64(sbyte @value)
{
// 代码大小 23 (0x17)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: bge.s IL_0014
//IL_0004: ldstr "Overflow_UInt64"
//IL_0009: call string System.Environment::GetResourceString(string)
//IL_000e: newobj instance void System.OverflowException::.ctor(string)
//IL_0013: throw
//IL_0014: ldarg.0
//IL_0015: conv.i8
//IL_0016: ret
if (@value >= 0)
{
return @value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_UInt64"));
}
}
[System.CLSCompliant(false)]
public static ulong ToUInt64(byte @value)
{
// 代码大小 3 (0x3)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.u8
//IL_0002: ret
return @value;
}
[System.CLSCompliant(false)]
public static ulong ToUInt64(short @value)
{
// 代码大小 23 (0x17)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: bge.s IL_0014
//IL_0004: ldstr "Overflow_UInt64"
//IL_0009: call string System.Environment::GetResourceString(string)
//IL_000e: newobj instance void System.OverflowException::.ctor(string)
//IL_0013: throw
//IL_0014: ldarg.0
//IL_0015: conv.i8
//IL_0016: ret
if (@value >= 0)
{
return @value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_UInt64"));
}
}
[System.CLSCompliant(false)]
public static ulong ToUInt64(ushort @value)
{
// 代码大小 3 (0x3)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.u8
//IL_0002: ret
return @value;
}
[System.CLSCompliant(false)]
public static ulong ToUInt64(int @value)
{
// 代码大小 23 (0x17)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: bge.s IL_0014
//IL_0004: ldstr "Overflow_UInt64"
//IL_0009: call string System.Environment::GetResourceString(string)
//IL_000e: newobj instance void System.OverflowException::.ctor(string)
//IL_0013: throw
//IL_0014: ldarg.0
//IL_0015: conv.i8
//IL_0016: ret
if (@value >= 0)
{
return @value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_UInt64"));
}
}
[System.CLSCompliant(false)]
public static ulong ToUInt64(uint @value)
{
// 代码大小 3 (0x3)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.u8
//IL_0002: ret
return @value;
}
[System.CLSCompliant(false)]
public static ulong ToUInt64(long @value)
{
// 代码大小 23 (0x17)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: conv.i8
//IL_0003: bge.s IL_0015
//IL_0005: ldstr "Overflow_UInt64"
//IL_000a: call string System.Environment::GetResourceString(string)
//IL_000f: newobj instance void System.OverflowException::.ctor(string)
//IL_0014: throw
//IL_0015: ldarg.0
//IL_0016: ret
if (@value > 0L)
{
return @value;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_UInt64"));
}
}
[System.CLSCompliant(false)]
public static ulong ToUInt64(ulong @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return @value;
}
[System.CLSCompliant(false)]
public static ulong ToUInt64(float @value)
{
// 代码大小 8 (0x8)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r8
//IL_0002: call uint64 System.Convert::ToUInt64(float64)
//IL_0007: ret
return System.Convert.ToUInt64((double)@value);
}
[System.CLSCompliant(false)]
public static ulong ToUInt64(double @value)
{
// 代码大小 8 (0x8)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: call float64 System.Math::Round(float64)
//IL_0006: conv.ovf.u8
//IL_0007: ret
return checked((ulong)System.Math.Round(@value));
}
[System.CLSCompliant(false)]
public static ulong ToUInt64(System.Decimal @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldc.i4.0
//IL_0002: call valuetype System.Decimal System.Decimal::Round(valuetype System.Decimal,
// int32)
//IL_0007: call uint64 System.Decimal::ToUInt64(valuetype System.Decimal)
//IL_000c: ret
return System.Decimal.ToUInt64(System.Decimal.Round(@value,0));
}
[System.CLSCompliant(false)]
public static ulong ToUInt64(string @value)
{
// 代码大小 18 (0x12)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0006
//IL_0003: ldc.i4.0
//IL_0004: conv.i8
//IL_0005: ret
//IL_0006: ldarg.0
//IL_0007: call class System.Globalization.CultureInfo System.Globalization.CultureInfo::get_CurrentCulture()
//IL_000c: call uint64 System.UInt64::Parse(string,
// class System.IFormatProvider)
//IL_0011: ret
if (@value == null)
{
return 0ul;
}
else
{
return System.UInt64.Parse(@value, System.Globalization.CultureInfo.CurrentCulture);
}
}
[System.CLSCompliant(false)]
public static ulong ToUInt64(string @value, System.IFormatProvider provider)
{
// 代码大小 15 (0xf)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0006
//IL_0003: ldc.i4.0
//IL_0004: conv.i8
//IL_0005: ret
//IL_0006: ldarg.0
//IL_0007: ldc.i4.7
//IL_0008: ldarg.1
//IL_0009: call uint64 System.UInt64::Parse(string,
// valuetype System.Globalization.NumberStyles,
// class System.IFormatProvider)
//IL_000e: ret
if (@value == null)
{
return 0ul;
}
else
{
return System.UInt64.Parse(@value, NumberStyles.Integer, provider);
}
}
[System.CLSCompliant(false)]
public static ulong ToUInt64(System.DateTime @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.DateTime
//IL_0006: ldnull
//IL_0007: callvirt instance uint64 System.IConvertible::ToUInt64(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToUInt64(null);
}
public static float ToSingle(object @value)
{
// 代码大小 22 (0x16)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldnull
//IL_000a: callvirt instance float32 System.IConvertible::ToSingle(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldc.r4 0.0
//IL_0015: ret
if (@value == null)
{
return 0f;
}
else
{
return ((System.IConvertible)@value).ToSingle(null);
}
}
public static float ToSingle(object @value, System.IFormatProvider provider)
{
// 代码大小 22 (0x16)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldarg.1
//IL_000a: callvirt instance float32 System.IConvertible::ToSingle(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldc.r4 0.0
//IL_0015: ret
if (@value == null)
{
return 0f;
}
else
{
return ((System.IConvertible)@value).ToSingle(provider);
}
}
[System.CLSCompliant(false)]
public static float ToSingle(sbyte @value)
{
// 代码大小 3 (0x3)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r4
//IL_0002: ret
return @value;
}
public static float ToSingle(byte @value)
{
// 代码大小 3 (0x3)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r4
//IL_0002: ret
return @value;
}
public static float ToSingle(char @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.Char
//IL_0006: ldnull
//IL_0007: callvirt instance float32 System.IConvertible::ToSingle(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToSingle(null);
}
public static float ToSingle(short @value)
{
// 代码大小 3 (0x3)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r4
//IL_0002: ret
return @value;
}
[System.CLSCompliant(false)]
public static float ToSingle(ushort @value)
{
// 代码大小 3 (0x3)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r4
//IL_0002: ret
return @value;
}
public static float ToSingle(int @value)
{
// 代码大小 3 (0x3)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r4
//IL_0002: ret
return @value;
}
[System.CLSCompliant(false)]
public static float ToSingle(uint @value)
{
// 代码大小 4 (0x4)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r.un
//IL_0002: conv.r4
//IL_0003: ret
return @value;
}
public static float ToSingle(long @value)
{
// 代码大小 3 (0x3)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r4
//IL_0002: ret
return @value;
}
[System.CLSCompliant(false)]
public static float ToSingle(ulong @value)
{
// 代码大小 4 (0x4)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r.un
//IL_0002: conv.r4
//IL_0003: ret
return @value;
}
public static float ToSingle(float @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return @value;
}
public static float ToSingle(double @value)
{
// 代码大小 3 (0x3)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r4
//IL_0002: ret
return (float)@value;
}
public static float ToSingle(System.Decimal @value)
{
// 代码大小 8 (0x8)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: call float32 System.Decimal::op_Explicit(valuetype System.Decimal)
//IL_0006: conv.r4
//IL_0007: ret
return (float)System.Decimal.op_Explicit(@value);
}
public static float ToSingle(string @value)
{
// 代码大小 21 (0x15)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0009
//IL_0003: ldc.r4 0.0
//IL_0008: ret
//IL_0009: ldarg.0
//IL_000a: call class System.Globalization.CultureInfo System.Globalization.CultureInfo::get_CurrentCulture()
//IL_000f: call float32 System.Single::Parse(string,
// class System.IFormatProvider)
//IL_0014: ret
if (@value == null)
{
return 0.0f;
}
else
{
return System.Single.Parse(@value, System.Globalization.CultureInfo.CurrentCulture);
}
}
public static float ToSingle(string @value, System.IFormatProvider provider)
{
// 代码大小 22 (0x16)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0009
//IL_0003: ldc.r4 0.0
//IL_0008: ret
//IL_0009: ldarg.0
//IL_000a: ldc.i4 0xe7
//IL_000f: ldarg.1
//IL_0010: call float32 System.Single::Parse(string,
// valuetype System.Globalization.NumberStyles,
// class System.IFormatProvider)
//IL_0015: ret
if (@value == null)
{
return 0.0f;
}
else
{
return System.Single.Parse(@value,NumberStyles.AllowThousands|NumberStyles.Float,System.Globalization.CultureInfo.CurrentCulture);
}
}
public static float ToSingle(bool @value)
{
// 代码大小 9 (0x9)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0006
//IL_0003: ldc.i4.0
//IL_0004: br.s IL_0007
//IL_0006: ldc.i4.1
//IL_0007: conv.r4
//IL_0008: ret
if (@value)
{
return 1f;
}
else
{
return 0f;
}
}
public static float ToSingle(System.DateTime @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.DateTime
//IL_0006: ldnull
//IL_0007: callvirt instance float32 System.IConvertible::ToSingle(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToSingle(null);
}
public static double ToDouble(object @value)
{
// 代码大小 26 (0x1a)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldnull
//IL_000a: callvirt instance float64 System.IConvertible::ToDouble(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldc.r8 0.0
//IL_0019: ret
if (@value == null)
{
return 0.0d;
}
else
{
return ((System.IConvertible)@value).ToDouble(null);
}
}
public static double ToDouble(object @value, System.IFormatProvider provider)
{
// 代码大小 26 (0x1a)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldarg.1
//IL_000a: callvirt instance float64 System.IConvertible::ToDouble(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldc.r8 0.0
//IL_0019: ret
if (@value == null)
{
return 0.0d;
}
else
{
return ((System.IConvertible)@value).ToDouble(provider);
}
}
[System.CLSCompliant(false)]
public static double ToDouble(sbyte @value)
{
// 代码大小 3 (0x3)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r8
//IL_0002: ret
return @value;
}
public static double ToDouble(byte @value)
{
// 代码大小 3 (0x3)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r8
//IL_0002: ret
return @value;
}
public static double ToDouble(short @value)
{
// 代码大小 3 (0x3)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r8
//IL_0002: ret
return @value;
}
public static double ToDouble(char @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.Char
//IL_0006: ldnull
//IL_0007: callvirt instance float64 System.IConvertible::ToDouble(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToDouble(null);
}
[System.CLSCompliant(false)]
public static double ToDouble(ushort @value)
{
// 代码大小 3 (0x3)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r8
//IL_0002: ret
return @value;
}
public static double ToDouble(int @value)
{
// 代码大小 3 (0x3)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r8
//IL_0002: ret
return @value;
}
[System.CLSCompliant(false)]
public static double ToDouble(uint @value)
{
// 代码大小 4 (0x4)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r.un
//IL_0002: conv.r8
//IL_0003: ret
return @value;
}
public static double ToDouble(long @value)
{
// 代码大小 3 (0x3)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r8
//IL_0002: ret
return @value;
}
[System.CLSCompliant(false)]
public static double ToDouble(ulong @value)
{
// 代码大小 4 (0x4)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r.un
//IL_0002: conv.r8
//IL_0003: ret
return @value;
}
public static double ToDouble(float @value)
{
// 代码大小 3 (0x3)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r8
//IL_0002: ret
return (double)@value;
}
public static double ToDouble(double @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return @value;
}
public static double ToDouble(System.Decimal @value)
{
// 代码大小 8 (0x8)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: call float64 System.Decimal::op_Explicit(valuetype System.Decimal)
//IL_0006: conv.r8
//IL_0007: ret
return (double)System.Decimal.op_Explicit(@value);
}
public static double ToDouble(string @value)
{
// 代码大小 25 (0x19)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_000d
//IL_0003: ldc.r8 0.0
//IL_000c: ret
//IL_000d: ldarg.0
//IL_000e: call class System.Globalization.CultureInfo System.Globalization.CultureInfo::get_CurrentCulture()
//IL_0013: call float64 System.Double::Parse(string,
// class System.IFormatProvider)
//IL_0018: ret
if (@value == null)
{
return 0d;
}
else
{
return System.Double.Parse(@value, System.Globalization.CultureInfo.CurrentCulture);
}
}
public static double ToDouble(string @value, System.IFormatProvider provider)
{
// 代码大小 26 (0x1a)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_000d
//IL_0003: ldc.r8 0.0
//IL_000c: ret
//IL_000d: ldarg.0
//IL_000e: ldc.i4 0xe7
//IL_0013: ldarg.1
//IL_0014: call float64 System.Double::Parse(string,
// valuetype System.Globalization.NumberStyles,
// class System.IFormatProvider)
//IL_0019: ret
if (@value == null)
{
return 0.0d;
}
else
{
return System.Double.Parse(@value, NumberStyles.AllowThousands | NumberStyles.Float, provider);
}
}
public static double ToDouble(bool @value)
{
// 代码大小 9 (0x9)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0006
//IL_0003: ldc.i4.0
//IL_0004: br.s IL_0007
//IL_0006: ldc.i4.1
//IL_0007: conv.r8
//IL_0008: ret
if (@value)
{
return 1d;
}
else
{
return 0d;
}
}
public static double ToDouble(System.DateTime @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.DateTime
//IL_0006: ldnull
//IL_0007: callvirt instance float64 System.IConvertible::ToDouble(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToDouble(null);
}
public static System.Decimal ToDecimal(object @value)
{
// 代码大小 23 (0x17)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldnull
//IL_000a: callvirt instance valuetype System.Decimal System.IConvertible::ToDecimal(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldc.i4.0
//IL_0011: newobj instance void System.Decimal::.ctor(int32)
//IL_0016: ret
if (@value == null)
{
return new Decimal(0);
}
else
{
return ((System.IConvertible)@value).ToDecimal(null);
}
}
public static System.Decimal ToDecimal(object @value, System.IFormatProvider provider)
{
// 代码大小 23 (0x17)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldarg.1
//IL_000a: callvirt instance valuetype System.Decimal System.IConvertible::ToDecimal(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldc.i4.0
//IL_0011: newobj instance void System.Decimal::.ctor(int32)
//IL_0016: ret
if (@value == null)
{
return new Decimal(0);
}
else
{
return ((System.IConvertible)@value).ToDecimal(provider);
}
}
[System.CLSCompliant(false)]
public static System.Decimal ToDecimal(sbyte @value)
{
// 代码大小 7 (0x7)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: call valuetype System.Decimal System.Decimal::op_Implicit(int8)
//IL_0006: ret
return System.Decimal.op_Implicit(@value);
}
public static System.Decimal ToDecimal(byte @value)
{
// 代码大小 7 (0x7)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: call valuetype System.Decimal System.Decimal::op_Implicit(uint8)
//IL_0006: ret
return System.Decimal.op_Implicit(@value);
}
public static System.Decimal ToDecimal(char @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.Char
//IL_0006: ldnull
//IL_0007: callvirt instance valuetype System.Decimal System.IConvertible::ToDecimal(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToDecimal(null);
}
public static System.Decimal ToDecimal(short @value)
{
// 代码大小 7 (0x7)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: call valuetype System.Decimal System.Decimal::op_Implicit(int16)
//IL_0006: ret
return System.Decimal.op_Implicit(@value);
}
[System.CLSCompliant(false)]
public static System.Decimal ToDecimal(ushort @value)
{
// 代码大小 7 (0x7)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: call valuetype System.Decimal System.Decimal::op_Implicit(uint16)
//IL_0006: ret
return System.Decimal.op_Implicit(@value);
}
public static System.Decimal ToDecimal(int @value)
{
// 代码大小 7 (0x7)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: call valuetype System.Decimal System.Decimal::op_Implicit(int32)
//IL_0006: ret
return System.Decimal.op_Implicit(@value);
}
[System.CLSCompliant(false)]
public static System.Decimal ToDecimal(uint @value)
{
// 代码大小 7 (0x7)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: call valuetype System.Decimal System.Decimal::op_Implicit(uint32)
//IL_0006: ret
return System.Decimal.op_Implicit(@value);
}
public static System.Decimal ToDecimal(long @value)
{
// 代码大小 7 (0x7)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: call valuetype System.Decimal System.Decimal::op_Implicit(int64)
//IL_0006: ret
return System.Decimal.op_Implicit(@value);
}
[System.CLSCompliant(false)]
public static System.Decimal ToDecimal(ulong @value)
{
// 代码大小 7 (0x7)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: call valuetype System.Decimal System.Decimal::op_Implicit(uint64)
//IL_0006: ret
return System.Decimal.op_Implicit(@value);
}
public static System.Decimal ToDecimal(float @value)
{
// 代码大小 8 (0x8)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r4
//IL_0002: call valuetype System.Decimal System.Decimal::op_Explicit(float32)
//IL_0007: ret
return System.Decimal.op_Explicit(@value);
}
public static System.Decimal ToDecimal(double @value)
{
// 代码大小 8 (0x8)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: conv.r8
//IL_0002: call valuetype System.Decimal System.Decimal::op_Explicit(float64)
//IL_0007: ret
return System.Decimal.op_Explicit(@value);
}
public static System.Decimal ToDecimal(string @value)
{
// 代码大小 22 (0x16)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_000a
//IL_0003: ldc.i4.0
//IL_0004: newobj instance void System.Decimal::.ctor(int32)
//IL_0009: ret
//IL_000a: ldarg.0
//IL_000b: call class System.Globalization.CultureInfo System.Globalization.CultureInfo::get_CurrentCulture()
//IL_0010: call valuetype System.Decimal System.Decimal::Parse(string,
// class System.IFormatProvider)
//IL_0015: ret
if (@value == null)
{
return new System.Decimal(0);
}
else
{
return System.Decimal.Parse(@value, System.Globalization.CultureInfo.CurrentCulture);
}
}
public static System.Decimal ToDecimal(string @value, System.IFormatProvider provider)
{
// 代码大小 20 (0x14)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_000a
//IL_0003: ldc.i4.0
//IL_0004: newobj instance void System.Decimal::.ctor(int32)
//IL_0009: ret
//IL_000a: ldarg.0
//IL_000b: ldc.i4.s 111
//IL_000d: ldarg.1
//IL_000e: call valuetype System.Decimal System.Decimal::Parse(string,
// valuetype System.Globalization.NumberStyles,
// class System.IFormatProvider)
//IL_0013: ret
if (@value == null)
{
return new System.Decimal(0);
}
else
{
return System.Decimal.Parse(@value,NumberStyles.Number,provider);
}
}
public static System.Decimal ToDecimal(System.Decimal @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return @value;
}
public static System.Decimal ToDecimal(bool @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_0006
//IL_0003: ldc.i4.0
//IL_0004: br.s IL_0007
//IL_0006: ldc.i4.1
//IL_0007: call valuetype System.Decimal System.Decimal::op_Implicit(int32)
//IL_000c: ret
if (@value)
{
return System.Decimal.op_Implicit(1);
}
else
{
return System.Decimal.op_Implicit(0);
}
}
public static System.Decimal ToDecimal(System.DateTime @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.DateTime
//IL_0006: ldnull
//IL_0007: callvirt instance valuetype System.Decimal System.IConvertible::ToDecimal(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToDecimal(null);
}
public static System.DateTime ToDateTime(System.DateTime @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return @value;
}
public static System.DateTime ToDateTime(object @value)
{
// 代码大小 22 (0x16)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldnull
//IL_000a: callvirt instance valuetype System.DateTime System.IConvertible::ToDateTime(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldsfld valuetype System.DateTime System.DateTime::MinValue
//IL_0015: ret
if (@value == null)
{
return System.DateTime.MinValue;
}
else
{
return ((System.IConvertible)@value).ToDateTime(null);
}
}
public static System.DateTime ToDateTime(object @value, System.IFormatProvider provider)
{
// 代码大小 22 (0x16)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brfalse.s IL_0010
//IL_0003: ldarg.0
//IL_0004: castclass System.IConvertible
//IL_0009: ldarg.1
//IL_000a: callvirt instance valuetype System.DateTime System.IConvertible::ToDateTime(class System.IFormatProvider)
//IL_000f: ret
//IL_0010: ldsfld valuetype System.DateTime System.DateTime::MinValue
//IL_0015: ret
if (@value == null)
{
return System.DateTime.MinValue;
}
else
{
return ((System.IConvertible)@value).ToDateTime(provider);
}
}
public static System.DateTime ToDateTime(string @value)
{
// 代码大小 23 (0x17)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_000b
//IL_0003: ldc.i4.0
//IL_0004: conv.i8
//IL_0005: newobj instance void System.DateTime::.ctor(int64)
//IL_000a: ret
//IL_000b: ldarg.0
//IL_000c: call class System.Globalization.CultureInfo System.Globalization.CultureInfo::get_CurrentCulture()
//IL_0011: call valuetype System.DateTime System.DateTime::Parse(string,
// class System.IFormatProvider)
//IL_0016: ret
if (@value == null)
{
return new System.DateTime(0L);
}
else
{
return System.DateTime.Parse(@value, System.Globalization.CultureInfo.CurrentCulture);
}
}
public static System.DateTime ToDateTime(string @value, System.IFormatProvider provider)
{
// 代码大小 19 (0x13)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_000b
//IL_0003: ldc.i4.0
//IL_0004: conv.i8
//IL_0005: newobj instance void System.DateTime::.ctor(int64)
//IL_000a: ret
//IL_000b: ldarg.0
//IL_000c: ldarg.1
//IL_000d: call valuetype System.DateTime System.DateTime::Parse(string,
// class System.IFormatProvider)
//IL_0012: ret
if (@value == null)
{
return new System.DateTime(0L);
}
else
{
return System.DateTime.Parse(@value, provider);
}
}
[System.CLSCompliant(false)]
public static System.DateTime ToDateTime(sbyte @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.SByte
//IL_0006: ldnull
//IL_0007: callvirt instance valuetype System.DateTime System.IConvertible::ToDateTime(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToDateTime(null);
}
public static System.DateTime ToDateTime(byte @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.Byte
//IL_0006: ldnull
//IL_0007: callvirt instance valuetype System.DateTime System.IConvertible::ToDateTime(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToDateTime(null);
}
public static System.DateTime ToDateTime(short @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.Int16
//IL_0006: ldnull
//IL_0007: callvirt instance valuetype System.DateTime System.IConvertible::ToDateTime(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToDateTime(null);
}
[System.CLSCompliant(false)]
public static System.DateTime ToDateTime(ushort @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.UInt16
//IL_0006: ldnull
//IL_0007: callvirt instance valuetype System.DateTime System.IConvertible::ToDateTime(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToDateTime(null);
}
public static System.DateTime ToDateTime(int @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.Int32
//IL_0006: ldnull
//IL_0007: callvirt instance valuetype System.DateTime System.IConvertible::ToDateTime(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToDateTime(null);
}
[System.CLSCompliant(false)]
public static System.DateTime ToDateTime(uint @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.UInt32
//IL_0006: ldnull
//IL_0007: callvirt instance valuetype System.DateTime System.IConvertible::ToDateTime(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToDateTime(null);
}
public static System.DateTime ToDateTime(long @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.Int64
//IL_0006: ldnull
//IL_0007: callvirt instance valuetype System.DateTime System.IConvertible::ToDateTime(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToDateTime(null);
}
[System.CLSCompliant(false)]
public static System.DateTime ToDateTime(ulong @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.UInt64
//IL_0006: ldnull
//IL_0007: callvirt instance valuetype System.DateTime System.IConvertible::ToDateTime(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToDateTime(null);
}
public static System.DateTime ToDateTime(bool @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.Boolean
//IL_0006: ldnull
//IL_0007: callvirt instance valuetype System.DateTime System.IConvertible::ToDateTime(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToDateTime(null);
}
public static System.DateTime ToDateTime(char @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.Char
//IL_0006: ldnull
//IL_0007: callvirt instance valuetype System.DateTime System.IConvertible::ToDateTime(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToDateTime(null);
}
public static System.DateTime ToDateTime(float @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.Single
//IL_0006: ldnull
//IL_0007: callvirt instance valuetype System.DateTime System.IConvertible::ToDateTime(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToDateTime(null);
}
public static System.DateTime ToDateTime(double @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.Double
//IL_0006: ldnull
//IL_0007: callvirt instance valuetype System.DateTime System.IConvertible::ToDateTime(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToDateTime(null);
}
public static System.DateTime ToDateTime(System.Decimal @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: box System.Decimal
//IL_0006: ldnull
//IL_0007: callvirt instance valuetype System.DateTime System.IConvertible::ToDateTime(class System.IFormatProvider)
//IL_000c: ret
return ((System.IConvertible)@value).ToDateTime(null);
}
public static string ToString(object @value)
{
// 代码大小 8 (0x8)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldnull
//IL_0002: call string System.Convert::ToString(object,
// class System.IFormatProvider)
//IL_0007: ret
return System.Convert.ToString(@value, null);
}
public static string ToString(object @value, System.IFormatProvider provider)
{
// 代码大小 53 (0x35)
//.maxstack 3
//.locals init (class System.IConvertible V_0,
// class System.IFormattable V_1)
//IL_0000: ldarg.0
//IL_0001: isinst System.IConvertible
//IL_0006: stloc.0
//IL_0007: ldloc.0
//IL_0008: brfalse.s IL_0012
//IL_000a: ldloc.0
//IL_000b: ldarg.1
//IL_000c: callvirt instance string System.IConvertible::ToString(class System.IFormatProvider)
//IL_0011: ret
//IL_0012: ldarg.0
//IL_0013: isinst System.IFormattable
//IL_0018: stloc.1
//IL_0019: ldloc.1
//IL_001a: brfalse.s IL_0025
//IL_001c: ldloc.1
//IL_001d: ldnull
//IL_001e: ldarg.1
//IL_001f: callvirt instance string System.IFormattable::ToString(string,
// class System.IFormatProvider)
//IL_0024: ret
//IL_0025: ldarg.0
//IL_0026: brfalse.s IL_002f
//IL_0028: ldarg.0
//IL_0029: callvirt instance string System.Object::ToString()
//IL_002e: ret
//IL_002f: ldsfld string System.String::Empty
//IL_0034: ret
System.IConvertible V_0;
System.IFormattable V_1;
V_0 = @value as System.IConvertible;
if (V_0 == null)
{
//IL_0012
V_1 = @value as System.IFormattable;
if (V_1 == null)
{
//IL_0025
if (@value == null)
{
return string.Empty;
}
else
{
return @value.ToString();
}
}
else
{
return V_1.ToString(null, provider);
}
}
else
{
return V_0.ToString(provider);
}
}
public static string ToString(bool @value)
{
// 代码大小 8 (0x8)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: call instance string System.Boolean::ToString()
//IL_0007: ret
return @value.ToString();
}
public static string ToString(bool @value, System.IFormatProvider provider)
{
// 代码大小 9 (0x9)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: ldarg.1
//IL_0003: call instance string System.Boolean::ToString(class System.IFormatProvider)
//IL_0008: ret
return @value.ToString(provider);
}
public static string ToString(char @value)
{
// 代码大小 7 (0x7)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: call string System.Char::ToString(char)
//IL_0006: ret
return System.Char.ToString(@value);
}
public static string ToString(char @value, System.IFormatProvider provider)
{
// 代码大小 9 (0x9)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: ldarg.1
//IL_0003: call instance string System.Char::ToString(class System.IFormatProvider)
//IL_0008: ret
return @value.ToString(provider);
}
[System.CLSCompliant(false)]
public static string ToString(sbyte @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: call class System.Globalization.CultureInfo System.Globalization.CultureInfo::get_CurrentCulture()
//IL_0007: call instance string System.SByte::ToString(class System.IFormatProvider)
//IL_000c: ret
return @value.ToString(System.Globalization.CultureInfo.CurrentCulture);
}
[System.CLSCompliant(false)]
public static string ToString(sbyte @value, System.IFormatProvider provider)
{
// 代码大小 9 (0x9)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: ldarg.1
//IL_0003: call instance string System.SByte::ToString(class System.IFormatProvider)
//IL_0008: ret
return @value.ToString(provider);
}
public static string ToString(byte @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: call class System.Globalization.CultureInfo System.Globalization.CultureInfo::get_CurrentCulture()
//IL_0007: call instance string System.Byte::ToString(class System.IFormatProvider)
//IL_000c: ret
return @value.ToString(System.Globalization.CultureInfo.CurrentCulture);
}
public static string ToString(byte @value, System.IFormatProvider provider)
{
// 代码大小 9 (0x9)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: ldarg.1
//IL_0003: call instance string System.Byte::ToString(class System.IFormatProvider)
//IL_0008: ret
return @value.ToString(provider);
}
public static string ToString(short @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: call class System.Globalization.CultureInfo System.Globalization.CultureInfo::get_CurrentCulture()
//IL_0007: call instance string System.Int16::ToString(class System.IFormatProvider)
//IL_000c: ret
return @value.ToString(System.Globalization.CultureInfo.CurrentCulture);
}
public static string ToString(short @value, System.IFormatProvider provider)
{
// 代码大小 9 (0x9)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: ldarg.1
//IL_0003: call instance string System.Int16::ToString(class System.IFormatProvider)
//IL_0008: ret
return @value.ToString(provider);
}
[System.CLSCompliant(false)]
public static string ToString(ushort @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: call class System.Globalization.CultureInfo System.Globalization.CultureInfo::get_CurrentCulture()
//IL_0007: call instance string System.UInt16::ToString(class System.IFormatProvider)
//IL_000c: ret
return @value.ToString(System.Globalization.CultureInfo.CurrentCulture);
}
[System.CLSCompliant(false)]
public static string ToString(ushort @value, System.IFormatProvider provider)
{
// 代码大小 9 (0x9)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: ldarg.1
//IL_0003: call instance string System.UInt16::ToString(class System.IFormatProvider)
//IL_0008: ret
return @value.ToString(provider);
}
public static string ToString(int @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: call class System.Globalization.CultureInfo System.Globalization.CultureInfo::get_CurrentCulture()
//IL_0007: call instance string System.Int32::ToString(class System.IFormatProvider)
//IL_000c: ret
return @value.ToString(System.Globalization.CultureInfo.CurrentCulture);
}
public static string ToString(int @value, System.IFormatProvider provider)
{
// 代码大小 9 (0x9)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: ldarg.1
//IL_0003: call instance string System.Int32::ToString(class System.IFormatProvider)
//IL_0008: ret
return @value.ToString(provider);
}
[System.CLSCompliant(false)]
public static string ToString(uint @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: call class System.Globalization.CultureInfo System.Globalization.CultureInfo::get_CurrentCulture()
//IL_0007: call instance string System.UInt32::ToString(class System.IFormatProvider)
//IL_000c: ret
return @value.ToString(System.Globalization.CultureInfo.CurrentCulture);
}
[System.CLSCompliant(false)]
public static string ToString(uint @value, System.IFormatProvider provider)
{
// 代码大小 9 (0x9)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: ldarg.1
//IL_0003: call instance string System.UInt32::ToString(class System.IFormatProvider)
//IL_0008: ret
return @value.ToString(provider);
}
public static string ToString(long @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: call class System.Globalization.CultureInfo System.Globalization.CultureInfo::get_CurrentCulture()
//IL_0007: call instance string System.Int64::ToString(class System.IFormatProvider)
//IL_000c: ret
return @value.ToString(System.Globalization.CultureInfo.CurrentCulture);
}
public static string ToString(long @value, System.IFormatProvider provider)
{
// 代码大小 9 (0x9)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: ldarg.1
//IL_0003: call instance string System.Int64::ToString(class System.IFormatProvider)
//IL_0008: ret
return @value.ToString(provider);
}
[System.CLSCompliant(false)]
public static string ToString(ulong @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: call class System.Globalization.CultureInfo System.Globalization.CultureInfo::get_CurrentCulture()
//IL_0007: call instance string System.UInt64::ToString(class System.IFormatProvider)
//IL_000c: ret
return @value.ToString(System.Globalization.CultureInfo.CurrentCulture);
}
[System.CLSCompliant(false)]
public static string ToString(ulong @value, System.IFormatProvider provider)
{
// 代码大小 9 (0x9)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: ldarg.1
//IL_0003: call instance string System.UInt64::ToString(class System.IFormatProvider)
//IL_0008: ret
return @value.ToString(provider);
}
public static string ToString(float @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: call class System.Globalization.CultureInfo System.Globalization.CultureInfo::get_CurrentCulture()
//IL_0007: call instance string System.Single::ToString(class System.IFormatProvider)
//IL_000c: ret
return @value.ToString(System.Globalization.CultureInfo.CurrentCulture);
}
public static string ToString(float @value, System.IFormatProvider provider)
{
// 代码大小 9 (0x9)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: ldarg.1
//IL_0003: call instance string System.Single::ToString(class System.IFormatProvider)
//IL_0008: ret
return @value.ToString(provider);
}
public static string ToString(float @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: call class System.Globalization.CultureInfo System.Globalization.CultureInfo::get_CurrentCulture()
//IL_0007: call instance string System.Double::ToString(class System.IFormatProvider)
//IL_000c: ret
return @value.ToString(System.Globalization.CultureInfo.CurrentCulture);
}
public static string ToString(float @value, System.IFormatProvider provider)
{
// 代码大小 9 (0x9)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: ldarg.1
//IL_0003: call instance string System.Double::ToString(class System.IFormatProvider)
//IL_0008: ret
return @value.ToString(provider);
}
public static string ToString(System.Decimal @value)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: call class System.Globalization.CultureInfo System.Globalization.CultureInfo::get_CurrentCulture()
//IL_0007: call instance string System.Decimal::ToString(class System.IFormatProvider)
//IL_000c: ret
return @value.ToString(System.Globalization.CultureInfo.CurrentCulture);
}
public static string ToString(System.Decimal @value, System.IFormatProvider provider)
{
// 代码大小 9 (0x9)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: ldarg.1
//IL_0003: call instance string System.Decimal::ToString(class System.IFormatProvider)
//IL_0008: ret
return @value.ToString(provider);
}
public static string ToString(System.DateTime @value)
{
// 代码大小 14 (0xe)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: constrained. System.DateTime
//IL_0008: callvirt instance string System.Object::ToString()
//IL_000d: ret
return @value.ToString();
}
public static string ToString(System.DateTime @value, System.IFormatProvider provider)
{
// 代码大小 9 (0x9)
//.maxstack 8
//IL_0000: ldarga.s 'value'
//IL_0002: ldarg.1
//IL_0003: call instance string System.DateTime::ToString(class System.IFormatProvider)
//IL_0008: ret
return @value.ToString(provider);
}
public static string ToString(string @value)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return @value;
}
public static string ToString(string @value, System.IFormatProvider provider)
{
// 代码大小 2 (0x2)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ret
return @value;
}
public static byte ToByte(string @value, int fromBase)
{
// 代码大小 78 (0x4e)
//.maxstack 3
//.locals init (int32 V_0)
//IL_0000: ldarg.1
//IL_0001: ldc.i4.2
//IL_0002: beq.s IL_0022
//IL_0004: ldarg.1
//IL_0005: ldc.i4.8
//IL_0006: beq.s IL_0022
//IL_0008: ldarg.1
//IL_0009: ldc.i4.s 10
//IL_000b: beq.s IL_0022
//IL_000d: ldarg.1
//IL_000e: ldc.i4.s 16
//IL_0010: beq.s IL_0022
//IL_0012: ldstr "Arg_InvalidBase"
//IL_0017: call string System.Environment::GetResourceString(string)
//IL_001c: newobj instance void System.ArgumentException::.ctor(string)
//IL_0021: throw
//IL_0022: ldarg.0
//IL_0023: ldarg.1
//IL_0024: ldc.i4 0x1200
//IL_0029: call int32 System.ParseNumbers::StringToInt(string,
// int32,
// int32)
//IL_002e: stloc.0
//IL_002f: ldloc.0
//IL_0030: ldc.i4.0
//IL_0031: blt.s IL_003b
//IL_0033: ldloc.0
//IL_0034: ldc.i4 0xff
//IL_0039: ble.s IL_004b
//IL_003b: ldstr "Overflow_Byte"
//IL_0040: call string System.Environment::GetResourceString(string)
//IL_0045: newobj instance void System.OverflowException::.ctor(string)
//IL_004a: throw
//IL_004b: ldloc.0
//IL_004c: conv.u1
//IL_004d: ret
int V_0;
if(fromBase==2||fromBase==8||fromBase==10||fromBase==16)
{
//IL_0022
V_0=System.ParseNumbers.StringToInt(@value,fromBase,0x1200);
if (V_0 >= 0 && V_0 <= 0xff)
{
return (byte)V_0;
}
else
{
//IL_003b
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Byte"));
}
}
else
{
throw new System.ArgumentException(System.Environment.GetResourceString("Arg_InvalidBase"));
}
}
[System.CLSCompliant(false)]
public static sbyte ToSByte(string @value, int fromBase)
{
// 代码大小 92 (0x5c)
//.maxstack 3
//.locals init (int32 V_0)
//IL_0000: ldarg.1
//IL_0001: ldc.i4.2
//IL_0002: beq.s IL_0022
//IL_0004: ldarg.1
//IL_0005: ldc.i4.8
//IL_0006: beq.s IL_0022
//IL_0008: ldarg.1
//IL_0009: ldc.i4.s 10
//IL_000b: beq.s IL_0022
//IL_000d: ldarg.1
//IL_000e: ldc.i4.s 16
//IL_0010: beq.s IL_0022
//IL_0012: ldstr "Arg_InvalidBase"
//IL_0017: call string System.Environment::GetResourceString(string)
//IL_001c: newobj instance void System.ArgumentException::.ctor(string)
//IL_0021: throw
//IL_0022: ldarg.0
//IL_0023: ldarg.1
//IL_0024: ldc.i4 0x1400
//IL_0029: call int32 System.ParseNumbers::StringToInt(string,
// int32,
// int32)
//IL_002e: stloc.0
//IL_002f: ldarg.1
//IL_0030: ldc.i4.s 10
//IL_0032: beq.s IL_003f
//IL_0034: ldloc.0
//IL_0035: ldc.i4 0xff
//IL_003a: bgt.s IL_003f
//IL_003c: ldloc.0
//IL_003d: conv.i1
//IL_003e: ret
//IL_003f: ldloc.0
//IL_0040: ldc.i4.s -128
//IL_0042: blt.s IL_0049
//IL_0044: ldloc.0
//IL_0045: ldc.i4.s 127
//IL_0047: ble.s IL_0059
//IL_0049: ldstr "Overflow_SByte"
//IL_004e: call string System.Environment::GetResourceString(string)
//IL_0053: newobj instance void System.OverflowException::.ctor(string)
//IL_0058: throw
//IL_0059: ldloc.0
//IL_005a: conv.i1
//IL_005b: ret
int V_0;
if (fromBase == 2 || fromBase == 8 || fromBase == 10 || fromBase == 16)
{
//IL_0022
V_0 = System.ParseNumbers.StringToInt(@value, fromBase, 0x1400);
if (fromBase != 10 && V_0 <= 0xff)
{
return (sbyte)V_0;
}
else
{
//IL_003f
if (V_0 >= -128 && V_0 <= 127)
{
return (sbyte)V_0;
}
else
{
//IL_0049
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_SByte"));
}
}
}
else
{
throw new System.ArgumentException(System.Environment.GetResourceString("Arg_InvalidBase"));
}
}
public static short ToInt16(string @value, int fromBase)
{
// 代码大小 98 (0x62)
//.maxstack 3
//.locals init (int32 V_0)
//IL_0000: ldarg.1
//IL_0001: ldc.i4.2
//IL_0002: beq.s IL_0022
//IL_0004: ldarg.1
//IL_0005: ldc.i4.8
//IL_0006: beq.s IL_0022
//IL_0008: ldarg.1
//IL_0009: ldc.i4.s 10
//IL_000b: beq.s IL_0022
//IL_000d: ldarg.1
//IL_000e: ldc.i4.s 16
//IL_0010: beq.s IL_0022
//IL_0012: ldstr "Arg_InvalidBase"
//IL_0017: call string System.Environment::GetResourceString(string)
//IL_001c: newobj instance void System.ArgumentException::.ctor(string)
//IL_0021: throw
//IL_0022: ldarg.0
//IL_0023: ldarg.1
//IL_0024: ldc.i4 0x1800
//IL_0029: call int32 System.ParseNumbers::StringToInt(string,
// int32,
// int32)
//IL_002e: stloc.0
//IL_002f: ldarg.1
//IL_0030: ldc.i4.s 10
//IL_0032: beq.s IL_003f
//IL_0034: ldloc.0
//IL_0035: ldc.i4 0xffff
//IL_003a: bgt.s IL_003f
//IL_003c: ldloc.0
//IL_003d: conv.i2
//IL_003e: ret
//IL_003f: ldloc.0
//IL_0040: ldc.i4 0xffff8000
//IL_0045: blt.s IL_004f
//IL_0047: ldloc.0
//IL_0048: ldc.i4 0x7fff
//IL_004d: ble.s IL_005f
//IL_004f: ldstr "Overflow_Int16"
//IL_0054: call string System.Environment::GetResourceString(string)
//IL_0059: newobj instance void System.OverflowException::.ctor(string)
//IL_005e: throw
//IL_005f: ldloc.0
//IL_0060: conv.i2
//IL_0061: ret
int V_0;
if(fromBase==2||fromBase==8||fromBase==10||fromBase==16)
{
//IL_0022
V_0 = System.ParseNumbers.StringToInt(@value, fromBase, 0x1800);
if (fromBase != 10 && V_0 <= 0xffff)
{
return (short)V_0;
}
else
{
//IL_003f
if (V_0 >= unchecked((int)0xffff8000) && V_0 <= 0x7fff)
{
return (short)V_0;
}
else
{
//IL_0049
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_Int16"));
}
}
}
else
{
throw new System.ArgumentException(System.Environment.GetResourceString("Arg_InvalidBase"));
}
}
[System.CLSCompliant(false)]
public static ushort ToUInt16(string @value, int fromBase)
{
// 代码大小 78 (0x4e)
//.maxstack 3
//.locals init (int32 V_0)
//IL_0000: ldarg.1
//IL_0001: ldc.i4.2
//IL_0002: beq.s IL_0022
//IL_0004: ldarg.1
//IL_0005: ldc.i4.8
//IL_0006: beq.s IL_0022
//IL_0008: ldarg.1
//IL_0009: ldc.i4.s 10
//IL_000b: beq.s IL_0022
//IL_000d: ldarg.1
//IL_000e: ldc.i4.s 16
//IL_0010: beq.s IL_0022
//IL_0012: ldstr "Arg_InvalidBase"
//IL_0017: call string System.Environment::GetResourceString(string)
//IL_001c: newobj instance void System.ArgumentException::.ctor(string)
//IL_0021: throw
//IL_0022: ldarg.0
//IL_0023: ldarg.1
//IL_0024: ldc.i4 0x1200
//IL_0029: call int32 System.ParseNumbers::StringToInt(string,
// int32,
// int32)
//IL_002e: stloc.0
//IL_002f: ldloc.0
//IL_0030: ldc.i4.0
//IL_0031: blt.s IL_003b
//IL_0033: ldloc.0
//IL_0034: ldc.i4 0xffff
//IL_0039: ble.s IL_004b
//IL_003b: ldstr "Overflow_UInt16"
//IL_0040: call string System.Environment::GetResourceString(string)
//IL_0045: newobj instance void System.OverflowException::.ctor(string)
//IL_004a: throw
//IL_004b: ldloc.0
//IL_004c: conv.u2
//IL_004d: ret
int V_0;
if (fromBase == 2 || fromBase == 8 || fromBase == 10 || fromBase == 16)
{
//IL_0022
V_0 = System.ParseNumbers.StringToInt(@value, fromBase, 0x1200);
if (V_0 >=0 && V_0 <= 0xffff)
{
return (ushort)V_0;
}
else
{
throw new System.OverflowException(System.Environment.GetResourceString("Overflow_UInt16"));
}
}
else
{
throw new System.ArgumentException(System.Environment.GetResourceString("Arg_InvalidBase"));
}
}
public static int ToInt32(string @value, int fromBase)
{
// 代码大小 47 (0x2f)
//.maxstack 8
//IL_0000: ldarg.1
//IL_0001: ldc.i4.2
//IL_0002: beq.s IL_0022
//IL_0004: ldarg.1
//IL_0005: ldc.i4.8
//IL_0006: beq.s IL_0022
//IL_0008: ldarg.1
//IL_0009: ldc.i4.s 10
//IL_000b: beq.s IL_0022
//IL_000d: ldarg.1
//IL_000e: ldc.i4.s 16
//IL_0010: beq.s IL_0022
//IL_0012: ldstr "Arg_InvalidBase"
//IL_0017: call string System.Environment::GetResourceString(string)
//IL_001c: newobj instance void System.ArgumentException::.ctor(string)
//IL_0021: throw
//IL_0022: ldarg.0
//IL_0023: ldarg.1
//IL_0024: ldc.i4 0x1000
//IL_0029: call int32 System.ParseNumbers::StringToInt(string,
// int32,
// int32)
//IL_002e: ret
if (fromBase == 2 || fromBase == 8 || fromBase == 10 || fromBase == 16)
{
//IL_0022
return System.ParseNumbers.StringToInt(@value, fromBase, 0x1000);
}
else
{
throw new System.ArgumentException(System.Environment.GetResourceString("Arg_InvalidBase"));
}
}
[System.CLSCompliant(false)]
public static uint ToUInt32(string @value, int fromBase)
{
// 代码大小 47 (0x2f)
//.maxstack 8
//IL_0000: ldarg.1
//IL_0001: ldc.i4.2
//IL_0002: beq.s IL_0022
//IL_0004: ldarg.1
//IL_0005: ldc.i4.8
//IL_0006: beq.s IL_0022
//IL_0008: ldarg.1
//IL_0009: ldc.i4.s 10
//IL_000b: beq.s IL_0022
//IL_000d: ldarg.1
//IL_000e: ldc.i4.s 16
//IL_0010: beq.s IL_0022
//IL_0012: ldstr "Arg_InvalidBase"
//IL_0017: call string System.Environment::GetResourceString(string)
//IL_001c: newobj instance void System.ArgumentException::.ctor(string)
//IL_0021: throw
//IL_0022: ldarg.0
//IL_0023: ldarg.1
//IL_0024: ldc.i4 0x1200
//IL_0029: call int32 System.ParseNumbers::StringToInt(string,
// int32,
// int32)
//IL_002e: ret
if (fromBase == 2 || fromBase == 8 || fromBase == 10 || fromBase == 16)
{
//IL_0022
return System.ParseNumbers.StringToInt(@value, fromBase, 0x1200);
}
else
{
throw new System.ArgumentException(System.Environment.GetResourceString("Arg_InvalidBase"));
}
}
public static long ToInt64(string @value, int fromBase)
{
// 代码大小 47 (0x2f)
//.maxstack 8
//IL_0000: ldarg.1
//IL_0001: ldc.i4.2
//IL_0002: beq.s IL_0022
//IL_0004: ldarg.1
//IL_0005: ldc.i4.8
//IL_0006: beq.s IL_0022
//IL_0008: ldarg.1
//IL_0009: ldc.i4.s 10
//IL_000b: beq.s IL_0022
//IL_000d: ldarg.1
//IL_000e: ldc.i4.s 16
//IL_0010: beq.s IL_0022
//IL_0012: ldstr "Arg_InvalidBase"
//IL_0017: call string System.Environment::GetResourceString(string)
//IL_001c: newobj instance void System.ArgumentException::.ctor(string)
//IL_0021: throw
//IL_0022: ldarg.0
//IL_0023: ldarg.1
//IL_0024: ldc.i4 0x1000
//IL_0029: call int64 System.ParseNumbers::StringToLong(string,
// int32,
// int32)
//IL_002e: ret
if (fromBase == 2 || fromBase == 8 || fromBase == 10 || fromBase == 16)
{
//IL_0022
return System.ParseNumbers.StringToLong(@value, fromBase, 0x1000);
}
else
{
throw new System.ArgumentException(System.Environment.GetResourceString("Arg_InvalidBase"));
}
}
[System.CLSCompliant(false)]
public static ulong ToUInt64(string @value, int fromBase)
{
// 代码大小 47 (0x2f)
//.maxstack 8
//IL_0000: ldarg.1
//IL_0001: ldc.i4.2
//IL_0002: beq.s IL_0022
//IL_0004: ldarg.1
//IL_0005: ldc.i4.8
//IL_0006: beq.s IL_0022
//IL_0008: ldarg.1
//IL_0009: ldc.i4.s 10
//IL_000b: beq.s IL_0022
//IL_000d: ldarg.1
//IL_000e: ldc.i4.s 16
//IL_0010: beq.s IL_0022
//IL_0012: ldstr "Arg_InvalidBase"
//IL_0017: call string System.Environment::GetResourceString(string)
//IL_001c: newobj instance void System.ArgumentException::.ctor(string)
//IL_0021: throw
//IL_0022: ldarg.0
//IL_0023: ldarg.1
//IL_0024: ldc.i4 0x1200
//IL_0029: call int64 System.ParseNumbers::StringToLong(string,
// int32,
// int32)
//IL_002e: ret
if (fromBase == 2 || fromBase == 8 || fromBase == 10 || fromBase == 16)
{
//IL_0022
return System.ParseNumbers.StringToLong(@value, fromBase, 0x1200);
}
else
{
throw new System.ArgumentException(System.Environment.GetResourceString("Arg_InvalidBase"));
}
}
public static string ToString(byte @value, int toBase)
{
// 代码大小 47 (0x2f)
//.maxstack 8
//IL_0000: ldarg.1
//IL_0001: ldc.i4.2
//IL_0002: beq.s IL_0022
//IL_0004: ldarg.1
//IL_0005: ldc.i4.8
//IL_0006: beq.s IL_0022
//IL_0008: ldarg.1
//IL_0009: ldc.i4.s 10
//IL_000b: beq.s IL_0022
//IL_000d: ldarg.1
//IL_000e: ldc.i4.s 16
//IL_0010: beq.s IL_0022
//IL_0012: ldstr "Arg_InvalidBase"
//IL_0017: call string System.Environment::GetResourceString(string)
//IL_001c: newobj instance void System.ArgumentException::.ctor(string)
//IL_0021: throw
//IL_0022: ldarg.0
//IL_0023: ldarg.1
//IL_0024: ldc.i4.m1
//IL_0025: ldc.i4.s 32
//IL_0027: ldc.i4.s 64
//IL_0029: call string System.ParseNumbers::IntToString(int32,
// int32,
// int32,
// char,
// int32)
//IL_002e: ret
if (toBase == 2 || toBase == 8 || toBase == 10 || toBase == 16)
{
//IL_0022
return System.ParseNumbers.IntToString(@value, toBase, -1, '\u0032', 64);
}
else
{
throw new System.ArgumentException(System.Environment.GetResourceString("Arg_InvalidBase"));
}
}
public static string ToString(short @value, int toBase)
{
// 代码大小 50 (0x32)
//.maxstack 8
//IL_0000: ldarg.1
//IL_0001: ldc.i4.2
//IL_0002: beq.s IL_0022
//IL_0004: ldarg.1
//IL_0005: ldc.i4.8
//IL_0006: beq.s IL_0022
//IL_0008: ldarg.1
//IL_0009: ldc.i4.s 10
//IL_000b: beq.s IL_0022
//IL_000d: ldarg.1
//IL_000e: ldc.i4.s 16
//IL_0010: beq.s IL_0022
//IL_0012: ldstr "Arg_InvalidBase"
//IL_0017: call string System.Environment::GetResourceString(string)
//IL_001c: newobj instance void System.ArgumentException::.ctor(string)
//IL_0021: throw
//IL_0022: ldarg.0
//IL_0023: ldarg.1
//IL_0024: ldc.i4.m1
//IL_0025: ldc.i4.s 32
//IL_0027: ldc.i4 0x80
//IL_002c: call string System.ParseNumbers::IntToString(int32,
// int32,
// int32,
// char,
// int32)
//IL_0031: ret
if (toBase == 2 || toBase == 8 || toBase == 10 || toBase == 16)
{
//IL_0022
return System.ParseNumbers.IntToString(@value, toBase, -1, '\u0032', 0x80);
}
else
{
throw new System.ArgumentException(System.Environment.GetResourceString("Arg_InvalidBase"));
}
}
public static string ToString(int @value, int toBase)
{
// 代码大小 46 (0x2e)
//.maxstack 8
//IL_0000: ldarg.1
//IL_0001: ldc.i4.2
//IL_0002: beq.s IL_0022
//IL_0004: ldarg.1
//IL_0005: ldc.i4.8
//IL_0006: beq.s IL_0022
//IL_0008: ldarg.1
//IL_0009: ldc.i4.s 10
//IL_000b: beq.s IL_0022
//IL_000d: ldarg.1
//IL_000e: ldc.i4.s 16
//IL_0010: beq.s IL_0022
//IL_0012: ldstr "Arg_InvalidBase"
//IL_0017: call string System.Environment::GetResourceString(string)
//IL_001c: newobj instance void System.ArgumentException::.ctor(string)
//IL_0021: throw
//IL_0022: ldarg.0
//IL_0023: ldarg.1
//IL_0024: ldc.i4.m1
//IL_0025: ldc.i4.s 32
//IL_0027: ldc.i4.0
//IL_0028: call string System.ParseNumbers::IntToString(int32,
// int32,
// int32,
// char,
// int32)
//IL_002d: ret
if (toBase == 2 || toBase == 8 || toBase == 10 || toBase == 16)
{
//IL_0022
return System.ParseNumbers.IntToString(@value, toBase, -1, '\u0032', 0);
}
else
{
throw new System.ArgumentException(System.Environment.GetResourceString("Arg_InvalidBase"));
}
}
public static string ToString(long @value, int toBase)
{
// 代码大小 46 (0x2e)
//.maxstack 8
//IL_0000: ldarg.1
//IL_0001: ldc.i4.2
//IL_0002: beq.s IL_0022
//IL_0004: ldarg.1
//IL_0005: ldc.i4.8
//IL_0006: beq.s IL_0022
//IL_0008: ldarg.1
//IL_0009: ldc.i4.s 10
//IL_000b: beq.s IL_0022
//IL_000d: ldarg.1
//IL_000e: ldc.i4.s 16
//IL_0010: beq.s IL_0022
//IL_0012: ldstr "Arg_InvalidBase"
//IL_0017: call string System.Environment::GetResourceString(string)
//IL_001c: newobj instance void System.ArgumentException::.ctor(string)
//IL_0021: throw
//IL_0022: ldarg.0
//IL_0023: ldarg.1
//IL_0024: ldc.i4.m1
//IL_0025: ldc.i4.s 32
//IL_0027: ldc.i4.0
//IL_0028: call string System.ParseNumbers::LongToString(int64,
// int32,
// int32,
// char,
// int32)
//IL_002d: ret
if (toBase == 2 || toBase == 8 || toBase == 10 || toBase == 16)
{
//IL_0022
return System.ParseNumbers.IntToString(@value, toBase, -1, '\u0032', 0);
}
else
{
throw new System.ArgumentException(System.Environment.GetResourceString("Arg_InvalidBase"));
}
}
public static string ToBase64String(byte[] inArray)
{
// 代码大小 26 (0x1a)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_000e
//IL_0003: ldstr "inArray"
//IL_0008: newobj instance void System.ArgumentNullException::.ctor(string)
//IL_000d: throw
//IL_000e: ldarg.0
//IL_000f: ldc.i4.0
//IL_0010: ldarg.0
//IL_0011: ldlen
//IL_0012: conv.i4
//IL_0013: ldc.i4.0
//IL_0014: call string System.Convert::ToBase64String(uint8[],
// int32,
// int32,
// valuetype System.Base64FormattingOptions)
//IL_0019: ret
if (inArray == null)
{
throw new System.ArgumentNullException("inArray");
}
else
{
return System.Convert.ToBase64String(inArray,0,inArray.Length,System.Base64FormattingOptions.None);
}
}
[System.Runtime.InteropServices.ComVisible(false)]
public static string ToBase64String(byte[] inArray, System.Base64FormattingOptions options)
{
// 代码大小 26 (0x1a)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_000e
//IL_0003: ldstr "inArray"
//IL_0008: newobj instance void System.ArgumentNullException::.ctor(string)
//IL_000d: throw
//IL_000e: ldarg.0
//IL_000f: ldc.i4.0
//IL_0010: ldarg.0
//IL_0011: ldlen
//IL_0012: conv.i4
//IL_0013: ldarg.1
//IL_0014: call string System.Convert::ToBase64String(uint8[],
// int32,
// int32,
// valuetype System.Base64FormattingOptions)
//IL_0019: ret
if (inArray == null)
{
throw new System.ArgumentNullException("inArray");
}
else
{
return System.Convert.ToBase64String(inArray, 0, inArray.Length, options);
}
}
public static string ToBase64String(byte[] inArray, int offset, int length)
{
// 代码大小 10 (0xa)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldarg.1
//IL_0002: ldarg.2
//IL_0003: ldc.i4.0
//IL_0004: call string System.Convert::ToBase64String(uint8[],
// int32,
// int32,
// valuetype System.Base64FormattingOptions)
//IL_0009: ret
return System.Convert.ToBase64String(inArray, offset, length, System.Base64FormattingOptions.None);
}
[System.Runtime.InteropServices.ComVisible(false)]
public static string ToBase64String(byte[] inArray, int offset, int length, System.Base64FormattingOptions options)
{
// 代码大小 249 (0xf9)
//.maxstack 5
//.locals init (int32 V_0,
// int32 V_1,
// bool V_2,
// string V_3,
// char* V_4,
// uint8& pinned V_5,
// int32 V_6,
// string V_7,
// object[] V_8,
// string pinned V_9,
// uint8[] V_10)
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_000e
//IL_0003: ldstr "inArray"
//IL_0008: newobj instance void System.ArgumentNullException::.ctor(string)
//IL_000d: throw
//IL_000e: ldarg.2
//IL_000f: ldc.i4.0
//IL_0010: bge.s IL_0027
//IL_0012: ldstr "length"
//IL_0017: ldstr "ArgumentOutOfRange_Index"
//IL_001c: call string System.Environment::GetResourceString(string)
//IL_0021: newobj instance void System.ArgumentOutOfRangeException::.ctor(string,
// string)
//IL_0026: throw
//IL_0027: ldarg.1
//IL_0028: ldc.i4.0
//IL_0029: bge.s IL_0040
//IL_002b: ldstr "offset"
//IL_0030: ldstr "ArgumentOutOfRange_GenericPositive"
//IL_0035: call string System.Environment::GetResourceString(string)
//IL_003a: newobj instance void System.ArgumentOutOfRangeException::.ctor(string,
// string)
//IL_003f: throw
//IL_0040: ldarg.0
//IL_0041: ldlen
//IL_0042: conv.i4
//IL_0043: stloc.0
//IL_0044: ldarg.1
//IL_0045: ldloc.0
//IL_0046: ldarg.2
//IL_0047: sub
//IL_0048: ble.s IL_005f
//IL_004a: ldstr "offset"
//IL_004f: ldstr "ArgumentOutOfRange_OffsetLength"
//IL_0054: call string System.Environment::GetResourceString(string)
//IL_0059: newobj instance void System.ArgumentOutOfRangeException::.ctor(string,
// string)
//IL_005e: throw
//IL_005f: ldarg.3
//IL_0060: ldc.i4.0
//IL_0061: blt.s IL_0067
//IL_0063: ldarg.3
//IL_0064: ldc.i4.1
//IL_0065: ble.s IL_008b
//IL_0067: ldstr "Arg_EnumIllegalVal"
//IL_006c: ldc.i4.1
//IL_006d: newarr System.Object
//IL_0072: stloc.s V_8
//IL_0074: ldloc.s V_8
//IL_0076: ldc.i4.0
//IL_0077: ldarg.3
//IL_0078: box System.Int32
//IL_007d: stelem.ref
//IL_007e: ldloc.s V_8
//IL_0080: call string System.Environment::GetResourceString(string,
// object[])
//IL_0085: newobj instance void System.ArgumentException::.ctor(string)
//IL_008a: throw
//IL_008b: ldloc.0
//IL_008c: brtrue.s IL_0094
//IL_008e: ldsfld string System.String::Empty
//IL_0093: ret
//IL_0094: ldarg.3
//IL_0095: ldc.i4.1
//IL_0096: ceq
//IL_0098: stloc.2
//IL_0099: ldarg.2
//IL_009a: ldloc.2
//IL_009b: call int32 System.Convert::CalculateOutputLength(int32,
// bool)
//IL_00a0: stloc.1
//IL_00a1: ldsfld string System.String::Empty
//IL_00a6: ldloc.1
//IL_00a7: call string System.String::GetStringForStringBuider(string,
// int32)
//IL_00ac: stloc.3
//IL_00ad: ldloc.3
//IL_00ae: stloc.s V_9
//IL_00b0: ldloc.s V_9
//IL_00b2: conv.i
//IL_00b3: dup
//IL_00b4: brfalse.s IL_00bc
//IL_00b6: call int32 System.Runtime.CompilerServices.RuntimeHelpers::get_OffsetToStringData()
//IL_00bb: add
//IL_00bc: stloc.s V_4
//IL_00be: ldarg.0
//IL_00bf: dup
//IL_00c0: stloc.s V_10
//IL_00c2: brfalse.s IL_00ca
//IL_00c4: ldloc.s V_10
//IL_00c6: ldlen
//IL_00c7: conv.i4
//IL_00c8: brtrue.s IL_00d0
//IL_00ca: ldc.i4.0
//IL_00cb: conv.u
//IL_00cc: stloc.s V_5
//IL_00ce: br.s IL_00da
//IL_00d0: ldloc.s V_10
//IL_00d2: ldc.i4.0
//IL_00d3: ldelema System.Byte
//IL_00d8: stloc.s V_5
//IL_00da: ldloc.s V_4
//IL_00dc: ldloc.s V_5
//IL_00de: conv.i
//IL_00df: ldarg.1
//IL_00e0: ldarg.2
//IL_00e1: ldloc.2
//IL_00e2: call int32 System.Convert::ConvertToBase64Array(char*,
// uint8*,
// int32,
// int32,
// bool)
//IL_00e7: stloc.s V_6
//IL_00e9: ldloc.3
//IL_00ea: ldloc.s V_6
//IL_00ec: callvirt instance void System.String::SetLength(int32)
//IL_00f1: ldloc.3
//IL_00f2: stloc.s V_7
//IL_00f4: leave.s IL_00f6
//IL_00f6: ldloc.s V_7
//IL_00f8: ret
int V_0,V_1;
bool V_2;
string V_3;
char* V_4;
int V_6;
string V_7;
object[] V_8;
byte[] V_10;
if(inArray==null)
{
throw new System.ArgumentNullException("inArray");
}
else
{
if(length>=0)
{
//IL_0040
V_0=inArray.Length;
if(offset<=(V_0-length))
{
//IL_005f
if(options>=System.Base64FormattingOptions.None&&options<=System.Base64FormattingOptions.InsertLineBreaks)
{
//IL_008b
if(V_0==0)
{
V_2=options==System.Base64FormattingOptions.InsertLineBreaks;
V_1=System.Convert.CalculateOutputLength(length,V_2);
//IL_00a1
V_3=string.GetStringForStringBuilder(string.Empty,V_1);
fixed(string V_9=V_3)
{
//IL_00b0
V_4=&V_9==0?&V_9:&V_9+System.Runtime.CompilerServices.RuntimeHelpers.OffsetToStringData;
//IL_00be
V_10=inArray;
fixed(byte* V_5=V_0!=null&&V_10.Length!=0?V_10[0]:0)
{
V_6=System.Convet.ConvertToBase64Array(V_4,V_5,offset,length,V_2);
//IL_00e9
V_6.SetLength(V_3);
V_7=V_3;
return V_7;
}
}
}
else
{
return string.Empty;
}
}
else
{
//IL_0067
V_8=new object[1];
V_8[0]=(object)options;
throw new System.ArgumentException(System.Environment.GetResourceString("Arg_EnumIllegalVal",V_8));
}
}
else
{
throw new System.ArgumentOutOfRangeException("offset",System.Environment.GetResourceString("ArgumentOutOfRange_OffsetLength"));
}
}
else
{
throw new System.ArgumentOutOfRangeException("offset",System.Environment.GetResourceString("ArgumentOutOfRange_GenericPositive"));
}
}
}
public static int ToBase64CharArray(byte[] inArray, int offsetIn, int length, char[] outArray, int offsetOut)
{
// 代码大小 13 (0xd)
//.maxstack 8
//IL_0000: ldarg.0
//IL_0001: ldarg.1
//IL_0002: ldarg.2
//IL_0003: ldarg.3
//IL_0004: ldarg.s offsetOut
//IL_0006: ldc.i4.0
//IL_0007: call int32 System.Convert::ToBase64CharArray(uint8[],
// int32,
// int32,
// char[],
// int32,
// valuetype System.Base64FormattingOptions)
//IL_000c: ret
return System.Convert.ToBase64CharArray(inArray, offsetIn, length, outArray, offsetOut, System.Base64FormattingOptions.None);
}
[System.Runtime.InteropServices.ComVisible(false)]
public static int ToBase64CharArray(byte[] inArray, int offsetIn, int length, char[] outArray, int offsetOut, System.Base64FormattingOptions options)
{
// 代码大小 299 (0x12b)
//.maxstack 5
//.locals init (int32 V_0,
// int32 V_1,
// int32 V_2,
// int32 V_3,
// bool V_4,
// char& pinned V_5,
// uint8& pinned V_6,
// object[] V_7,
// uint8[] V_8)
//IL_0000: ldarg.0
//IL_0001: brtrue.s IL_000e
//IL_0003: ldstr "inArray"
//IL_0008: newobj instance void System.ArgumentNullException::.ctor(string)
//IL_000d: throw
//IL_000e: ldarg.3
//IL_000f: brtrue.s IL_001c
//IL_0011: ldstr "outArray"
//IL_0016: newobj instance void System.ArgumentNullException::.ctor(string)
//IL_001b: throw
//IL_001c: ldarg.2
//IL_001d: ldc.i4.0
//IL_001e: bge.s IL_0035
//IL_0020: ldstr "length"
//IL_0025: ldstr "ArgumentOutOfRange_Index"
//IL_002a: call string System.Environment::GetResourceString(string)
//IL_002f: newobj instance void System.ArgumentOutOfRangeException::.ctor(string,
// string)
//IL_0034: throw
//IL_0035: ldarg.1
//IL_0036: ldc.i4.0
//IL_0037: bge.s IL_004e
//IL_0039: ldstr "offsetIn"
//IL_003e: ldstr "ArgumentOutOfRange_GenericPositive"
//IL_0043: call string System.Environment::GetResourceString(string)
//IL_0048: newobj instance void System.ArgumentOutOfRangeException::.ctor(string,
// string)
//IL_004d: throw
//IL_004e: ldarg.s offsetOut
//IL_0050: ldc.i4.0
//IL_0051: bge.s IL_0068
//IL_0053: ldstr "offsetOut"
//IL_0058: ldstr "ArgumentOutOfRange_GenericPositive"
//IL_005d: call string System.Environment::GetResourceString(string)
//IL_0062: newobj instance void System.ArgumentOutOfRangeException::.ctor(string,
// string)
//IL_0067: throw
//IL_0068: ldarg.s options
//IL_006a: ldc.i4.0
//IL_006b: blt.s IL_0072
//IL_006d: ldarg.s options
//IL_006f: ldc.i4.1
//IL_0070: ble.s IL_0097
//IL_0072: ldstr "Arg_EnumIllegalVal"
//IL_0077: ldc.i4.1
//IL_0078: newarr System.Object
//IL_007d: stloc.s V_7
//IL_007f: ldloc.s V_7
//IL_0081: ldc.i4.0
//IL_0082: ldarg.s options
//IL_0084: box System.Int32
//IL_0089: stelem.ref
//IL_008a: ldloc.s V_7
//IL_008c: call string System.Environment::GetResourceString(string,
// object[])
//IL_0091: newobj instance void System.ArgumentException::.ctor(string)
//IL_0096: throw
//IL_0097: ldarg.0
//IL_0098: ldlen
//IL_0099: conv.i4
//IL_009a: stloc.1
//IL_009b: ldarg.1
//IL_009c: ldloc.1
//IL_009d: ldarg.2
//IL_009e: sub
//IL_009f: ble.s IL_00b6
//IL_00a1: ldstr "offsetIn"
//IL_00a6: ldstr "ArgumentOutOfRange_OffsetLength"
//IL_00ab: call string System.Environment::GetResourceString(string)
//IL_00b0: newobj instance void System.ArgumentOutOfRangeException::.ctor(string,
// string)
//IL_00b5: throw
//IL_00b6: ldloc.1
//IL_00b7: brtrue.s IL_00bb
//IL_00b9: ldc.i4.0
//IL_00ba: ret
//IL_00bb: ldarg.s options
//IL_00bd: ldc.i4.1
//IL_00be: ceq
//IL_00c0: stloc.s V_4
//IL_00c2: ldarg.3
//IL_00c3: ldlen
//IL_00c4: conv.i4
//IL_00c5: stloc.2
//IL_00c6: ldarg.2
//IL_00c7: ldloc.s V_4
//IL_00c9: call int32 System.Convert::CalculateOutputLength(int32,
// bool)
//IL_00ce: stloc.3
//IL_00cf: ldarg.s offsetOut
//IL_00d1: ldloc.2
//IL_00d2: ldloc.3
//IL_00d3: sub
//IL_00d: ble.s IL_00eb
//IL_00d6: ldstr "offsetOut"
//IL_00db: ldstr "ArgumentOutOfRange_OffsetOut"
//IL_00e0: call string System.Environment::GetResourceString(string)
//IL_00e5: newobj instance void System.ArgumentOutOfRangeException::.ctor(string,
// string)
//IL_00ea: throw
//IL_00eb: ldarg.3
//IL_00ec: ldarg.s offsetOut
//IL_00ee: ldelema System.Char
//IL_00f3: stloc.s V_5
//IL_00f5: ldarg.0
//IL_00f6: dup
//IL_00f7: stloc.s V_8
//IL_00f9: brfalse.s IL_0101
//IL_00fb: ldloc.s V_8
//IL_00fd: ldlen
//IL_00fe: conv.i4
//IL_00ff: brtrue.s IL_0107
//IL_0101: ldc.i4.0
//IL_0102: conv.u
//IL_0103: stloc.s V_6
//IL_0105: br.s IL_0111
//IL_0107: ldloc.s V_8
//IL_0109: ldc.i4.0
//IL_010a: ldelema System.Byte
//IL_010f: stloc.s V_6
//IL_0111: ldloc.s V_5
//IL_0113: conv.i
//IL_0114: ldloc.s V_6
//IL_0116: conv.i
//IL_0117: ldarg.1
//IL_0118: ldarg.2
//IL_0119: ldloc.s V_4
//IL_011b: call int32 System.Convert::ConvertToBase64Array(char*,
// uint8*,
// int32,
// int32,
// bool)
//IL_0120: stloc.0
//IL_0121: ldc.i4.0
//IL_0122: conv.u
//IL_0123: stloc.s V_6
//IL_0125: ldc.i4.0
//IL_0126: conv.u
//IL_0127: stloc.s V_5
//IL_0129: ldloc.0
//IL_012a: ret
int V_0,V_1,V_2,V_3;
bool V_4;
object[] V_7;
byte[] V_8;
if(inArray==null)
{
throw new System.ArgumentNullException("inArray");
}
else
{
if(outArray==null)
{
throw new System.ArgumentNullException("outArray");
}
else
{
//IL_001c
if(length>=0)
{
if(offsetIn>=0)
{
//IL_004e
if(offsetOut>=0)
{
//IL_0068
if(options>=Base64FormattingOptions.None&&options<=Base64FormattingOptions.InsertLineBreaks)
{
//IL_0097
V_1=inArray.Length;
if(offsetIn<=V_1-length)
{
//IL_00b6
if(V_1==0)
{
return 0;
}
else
{
V_4=options==Base64FormattingOptions.InsertLineBreaks;
V_2=outArray.Length;
V_3=System.Convert.CalculateOutputLength(length,V_4);
//IL_00cf
if(offsetOut<=(V_2-V_3))
{
//IL_00eb
fixed(char* V_5=outArray[offsetOut])
{
V_8=inArray;
fixed(byte* V_6=V_8!=null&&V_8.Length!=0?V_8[0]:null)
{
V_0=System.Convert.ConvertToBase64Array(V_5,V_6,offsetIn,length,V_4);
V_6=null;
V_5=null;
return V_0;
}
}
}
else
{
throw new System.ArgumentOutOfRangeException("offsetOut",System.Environment.GetResourceString("ArgumentOutOfRange_OffsetOut"));
}
}
}
else
{
throw new System.ArgumentOutOfRangeException("offsetIn",System.Environment.GetResourceString("ArgumentOutOfRange_OffsetLength"));
}
}
else
{
V_7=new object[1];V_7[0]=(object)options;throw new System.ArgumentException(System.Environment.GetResourceString("Arg_EnumIllegalVal",V_7));
}
}
else
{
throw new System.ArgumentOutOfRangeException("offsetOut",System.Environment.GetResourceString("ArgumentOutOfRange_GenericPositive"));
}
}
else
{
throw new System.ArgumentOutOfRangeException("offsetIn",System.Environment.GetResourceString("ArgumentOutOfRange_GenericPositive"));
}
}
else
{
throw new System.ArgumentOutOfRangeException("length",System.Environment.GetResourceString("ArgumentOutOfRange_Index"));
}
}
}
}
private static int ConvertToBase64Array(char* outChars, byte* inData, int offset, int length, bool insertLineBreaks)
{
// 代码大小 550 (0x226)
//.maxstack 6
//.locals init (int32 V_0,
// int32 V_1,
// int32 V_2,
// int32 V_3,
// int32 V_4,
// char& pinned V_5,
// char[] V_6,
// int32 V_7)
//IL_0000: ldarg.3
//IL_0001: ldc.i4.3
//IL_0002: rem
//IL_0003: stloc.0
//IL_0004: ldarg.2
//IL_0005: ldarg.3
//IL_0006: ldloc.0
//IL_0007: sub
//IL_0008: add
//IL_0009: stloc.1
//IL_000a: ldc.i4.0
//IL_000b: stloc.2
//IL_000c: ldc.i4.0
//IL_000d: stloc.3
//IL_000e: ldsfld char[] System.Convert::base64Table
//IL_0013: dup
//IL_0014: stloc.s V_6
//IL_0016: brfalse.s IL_001e
//IL_0018: ldloc.s V_6
//IL_001a: ldlen
//IL_001b: conv.i4
//IL_001c: brtrue.s IL_0024
//IL_001e: ldc.i4.0
//IL_001f: conv.u
//IL_0020: stloc.s V_5
//IL_0022: br.s IL_002e
//IL_0024: ldloc.s V_6
//IL_0026: ldc.i4.0
//IL_0027: ldelema System.Char
//IL_002c: stloc.s V_5
//IL_002e: ldarg.2
//IL_002f: stloc.s V_4
//IL_0031: br IL_00f7
//IL_0036: ldarg.s insertLineBreaks
//IL_0038: brfalse.s IL_005f
//IL_003a: ldloc.3
//IL_003b: ldc.i4.s 76
//IL_003d: bne.un.s IL_005b
//IL_003f: ldarg.0
//IL_0040: ldloc.2
//IL_0041: dup
//IL_0042: ldc.i4.1
//IL_0043: add
//IL_0044: stloc.2
//IL_0045: conv.i
//IL_0046: ldc.i4.2
//IL_0047: mul
//IL_0048: add
//IL_0049: ldc.i4.s 13
//IL_004b: stind.i2
//IL_004c: ldarg.0
//IL_004d: ldloc.2
//IL_004e: dup
//IL_004f: ldc.i4.1
//IL_0050: add
//IL_0051: stloc.2
//IL_0052: conv.i
//IL_0053: ldc.i4.2
//IL_0054: mul
//IL_0055: add
//IL_0056: ldc.i4.s 10
//IL_0058: stind.i2
//IL_0059: ldc.i4.0
//IL_005a: stloc.3
//IL_005b: ldloc.3
//IL_005c: ldc.i4.4
//IL_005d: add
//IL_005e: stloc.3
//IL_005f: ldarg.0
//IL_0060: ldloc.2
//IL_0061: conv.i
//IL_0062: ldc.i4.2
//IL_0063: mul
//IL_0064: add
//IL_0065: ldloc.s V_5
//IL_0067: conv.i
//IL_0068: ldarg.1
//IL_0069: ldloc.s V_4
//IL_006b: add
//IL_006c: ldind.u1
//IL_006d: ldc.i4 0xfc
//IL_0072: and
//IL_0073: ldc.i4.2
//IL_0074: shr
//IL_0075: conv.i
//IL_0076: ldc.i4.2
//IL_0077: mul
//IL_0078: add
//IL_0079: ldind.u2
//IL_007a: stind.i2
//IL_007b: ldarg.0
//IL_007c: ldloc.2
//IL_007d: ldc.i4.1
//IL_007e: add
//IL_007f: conv.i
//IL_0080: ldc.i4.2
//IL_0081: mul
//IL_0082: add
//IL_0083: ldloc.s V_5
//IL_0085: conv.i
//IL_0086: ldarg.1
//IL_0087: ldloc.s V_4
//IL_0089: add
//IL_008a: ldind.u1
//IL_008b: ldc.i4.3
//IL_008c: and
//IL_008d: ldc.i4.4
//IL_008e: shl
//IL_008f: ldarg.1
//IL_0090: ldloc.s V_4
//IL_0092: ldc.i4.1
//IL_0093: add
//IL_0094: add
//IL_0095: ldind.u1
//IL_0096: ldc.i4 0xf0
//IL_009b: and
//IL_009c: ldc.i4.4
//IL_009d: shr
//IL_009e: or
//IL_009f: conv.i
//IL_00a0: ldc.i4.2
//IL_00a1: mul
//IL_00a2: add
//IL_00a3: ldind.u2
//IL_00a4: stind.i2
//IL_00a5: ldarg.0
//IL_00a6: ldloc.2
//IL_00a7: ldc.i4.2
//IL_00a8: add
//IL_00a9: conv.i
//IL_00aa: ldc.i4.2
//IL_00ab: mul
//IL_00ac: add
//IL_00ad: ldloc.s V_5
//IL_00af: conv.i
//IL_00b0: ldarg.1
//IL_00b1: ldloc.s V_4
//IL_00b3: ldc.i4.1
//IL_00b4: add
//IL_00b5: add
//IL_00b6: ldind.u1
//IL_00b7: ldc.i4.s 15
//IL_00b9: and
//IL_00ba: ldc.i4.2
//IL_00bb: shl
//IL_00bc: ldarg.1
//IL_00bd: ldloc.s V_4
//IL_00bf: ldc.i4.2
//IL_00c0: add
//IL_00c1: add
//IL_00c2: ldind.u1
//IL_00c3: ldc.i4 0xc0
//IL_00c8: and
//IL_00c9: ldc.i4.6
//IL_00ca: shr
//IL_00cb: or
//IL_00cc: conv.i
//IL_00cd: ldc.i4.2
//IL_00ce: mul
//IL_00cf: add
//IL_00d0: ldind.u2
//IL_00d1: stind.i2
//IL_00d2: ldarg.0
//IL_00d3: ldloc.2
//IL_00d4: ldc.i4.3
//IL_00d5: add
//IL_00d6: conv.i
//IL_00d7: ldc.i4.2
//IL_00d8: mul
//IL_00d9: add
//IL_00da: ldloc.s V_5
//IL_00dc: conv.i
//IL_00dd: ldarg.1
//IL_00de: ldloc.s V_4
//IL_00e0: ldc.i4.2
//IL_00e1: add
//IL_00e2: add
//IL_00e3: ldind.u1
//IL_00e4: ldc.i4.s 63
//IL_00e6: and
//IL_00e7: conv.i
//IL_00e8: ldc.i4.2
//IL_00e9: mul
//IL_00ea: add
//IL_00eb: ldind.u2
//IL_00ec: stind.i2
//IL_00ed: ldloc.2
//IL_00ee: ldc.i4.4
//IL_00ef: add
//IL_00f0: stloc.2
//IL_00f1: ldloc.s V_4
//IL_00f3: ldc.i4.3
//IL_00f4: add
//IL_00f5: stloc.s V_4
//IL_00f7: ldloc.s V_4
//IL_00f9: ldloc.1
//IL_00fa: blt IL_0036
//IL_00ff: ldloc.1
//IL_0100: stloc.s V_4
//IL_0102: ldarg.s insertLineBreaks
//IL_0104: brfalse.s IL_0128
//IL_0106: ldloc.0
//IL_0107: brfalse.s IL_0128
//IL_0109: ldloc.3
//IL_010a: ldc.i4.s 76
//IL_010c: bne.un.s IL_0128
//IL_010e: ldarg.0
//IL_010f: ldloc.2
//IL_0110: dup
//IL_0111: ldc.i4.1
//IL_0112: add
//IL_0113: stloc.2
//IL_0114: conv.i
//IL_0115: ldc.i4.2
//IL_0116: mul
//IL_0117: add
//IL_0118: ldc.i4.s 13
//IL_011a: stind.i2
//IL_011b: ldarg.0
//IL_011c: ldloc.2
//IL_011d: dup
//IL_011e: ldc.i4.1
//IL_011f: add
//IL_0120: stloc.2
//IL_0121: conv.i
//IL_0122: ldc.i4.2
//IL_0123: mul
//IL_0124: add
//IL_0125: ldc.i4.s 10
//IL_0127: stind.i2
//IL_0128: ldloc.0
//IL_0129: stloc.s V_7
//IL_012b: ldloc.s V_7
//IL_012d: ldc.i4.1
//IL_012e: sub
//IL_012f: switch (
// IL_01be,
// IL_0141)
//IL_013c: br IL_0220
//IL_0141: ldarg.0
//IL_0142: ldloc.2
//IL_0143: conv.i
//IL_0144: ldc.i4.2
//IL_0145: mul
//IL_0146: add
//IL_0147: ldloc.s V_5
//IL_0149: conv.i
//IL_014a: ldarg.1
//IL_014b: ldloc.s V_4
//IL_014d: add
//IL_014e: ldind.u1
//IL_014f: ldc.i4 0xfc
//IL_0154: and
//IL_0155: ldc.i4.2
//IL_0156: shr
//IL_0157: conv.i
//IL_0158: ldc.i4.2
//IL_0159: mul
//IL_015a: add
//IL_015b: ldind.u2
//IL_015c: stind.i2
//IL_015d: ldarg.0
//IL_015e: ldloc.2
//IL_015f: ldc.i4.1
//IL_0160: add
//IL_0161: conv.i
//IL_0162: ldc.i4.2
//IL_0163: mul
//IL_0164: add
//IL_0165: ldloc.s V_5
//IL_0167: conv.i
//IL_0168: ldarg.1
//IL_0169: ldloc.s V_4
//IL_016b: add
//IL_016c: ldind.u1
//IL_016d: ldc.i4.3
//IL_016e: and
//IL_016f: ldc.i4.4
//IL_0170: shl
//IL_0171: ldarg.1
//IL_0172: ldloc.s V_4
//IL_0174: ldc.i4.1
//IL_0175: add
//IL_0176: add
//IL_0177: ldind.u1
//IL_0178: ldc.i4 0xf0
//IL_017d: and
//IL_017e: ldc.i4.4
//IL_017f: shr
//IL_0180: or
//IL_0181: conv.i
//IL_0182: ldc.i4.2
//IL_0183: mul
//IL_0184: add
//IL_0185: ldind.u2
//IL_0186: stind.i2
//IL_0187: ldarg.0
//IL_0188: ldloc.2
//IL_0189: ldc.i4.2
//IL_018a: add
//IL_018b: conv.i
//IL_018c: ldc.i4.2
//IL_018d: mul
//IL_018e: add
//IL_018f: ldloc.s V_5
//IL_0191: conv.i
//IL_0192: ldarg.1
//IL_0193: ldloc.s V_4
//IL_0195: ldc.i4.1
//IL_0196: add
//IL_0197: add
//IL_0198: ldind.u1
//IL_0199: ldc.i4.s 15
//IL_019b: and
//IL_019c: ldc.i4.2
//IL_019d: shl
//IL_019e: conv.i
//IL_019f: ldc.i4.2
//IL_01a0: mul
//IL_01a1: add
//IL_01a2: ldind.u2
//IL_01a3: stind.i2
//IL_01a4: ldarg.0
//IL_01a5: ldloc.2
//IL_01a6: ldc.i4.3
//IL_01a7: add
//IL_01a8: conv.i
//IL_01a9: ldc.i4.2
//IL_01aa: mul
//IL_01ab: add
//IL_01ac: ldloc.s V_5
//IL_01ae: conv.i
//IL_01af: ldc.i4 0x80
//IL_01b4: conv.i
//IL_01b5: add
//IL_01b6: ldind.u2
//IL_01b7: stind.i2
//IL_01b8: ldloc.2
//IL_01b9: ldc.i4.4
//IL_01ba: add
//IL_01bb: stloc.2
//IL_01bc: br.s IL_0220
//IL_01be: ldarg.0
//IL_01bf: ldloc.2
//IL_01c0: conv.i
//IL_01c1: ldc.i4.2
//IL_01c2: mul
//IL_01c3: add
//IL_01c4: ldloc.s V_5
//IL_01c6: conv.i
//IL_01c7: ldarg.1
//IL_01c8: ldloc.s V_4
//IL_01ca: add
//IL_01cb: ldind.u1
//IL_01cc: ldc.i4 0xfc
//IL_01d1: and
//IL_01d2: ldc.i4.2
//IL_01d3: shr
//IL_01d4: conv.i
//IL_01d5: ldc.i4.2
//IL_01d6: mul
//IL_01d7: add
//IL_01d8: ldind.u2
//IL_01d9: stind.i2
//IL_01da: ldarg.0
//IL_01db: ldloc.2
//IL_01dc: ldc.i4.1
//L_01dd: add
//IL_01de: conv.i
//IL_01df: ldc.i4.2
//IL_01e0: mul
//IL_01e1: add
//IL_01e2: ldloc.s V_5
//IL_01e4: conv.i
//IL_01e5: ldarg.1
//IL_01e6: ldloc.s V_4
//IL_01e8: add
//IL_01e9: ldind.u1
//IL_01ea: ldc.i4.3
//IL_01eb: and
//IL_01ec: ldc.i4.4
//IL_01ed: shl
//IL_01ee: conv.i
//IL_01ef: ldc.i4.2
//IL_01f0: mul
//IL_01f1: add
//IL_01f2: ldind.u2
//IL_01f3: stind.i2
//IL_01f4: ldarg.0
//IL_01f5: ldloc.2
//IL_01f6: ldc.i4.2
//IL_01f7: add
//IL_01f8: conv.i
//IL_01f9: ldc.i4.2
//IL_01fa: mul
//IL_01fb: add
//IL_01fc: ldloc.s V_5
//IL_01fe: conv.i
//IL_01ff: ldc.i4 0x80
//IL_0204: conv.i
//IL_0205: add
//IL_0206: ldind.u2
//IL_0207: stind.i2
//IL_0208: ldarg.0
//IL_0209: ldloc.2
//IL_020a: ldc.i4.3
//IL_020b: add
//IL_020c: conv.i
//IL_020d: ldc.i4.2
//IL_020e: mul
//IL_020f: add
//IL_0210: ldloc.s V_5
//IL_0212: conv.i
//IL_0213: ldc.i4 0x80
//IL_0218: conv.i
//IL_0219: add
//IL_021a: ldind.u2
//IL_021b: stind.i2
//IL_021c: ldloc.2
//IL_021d: ldc.i4.4
//IL_021e: add
//IL_021f: stloc.2
//IL_0220: ldc.i4.0
//IL_0221: conv.u
//IL_0222: stloc.s V_5
//IL_0224: ldloc.2
//IL_0225: ret
int V_0,V_1,V_2,V_3,V_4;
char[] V_6;
int V_7;
V_0=length%3;
V_1=offset+(length-V_0);
V_2=0;
V_3=0;
V_6=System.Convert.base64Table;
fixed(char* V_5=V_6!=null&&V_6.Length!=0?V_6[0]:null)
{
//IL_002e
V_4=offset;//直接跳往//IL_00f7
while(V_4<V_1)//IL_00f7,满足条件跳完IL_0036
{
//IL_0036
if(insertLineBreaks)//不满足跳往//IL_005f
{
if(V_3==76)//不满足跳往//IL_005b
{
*(outChars+V_2*2)='\r';
V_2=V_2+1;
*(outChars+V_2*2)='\n';
V_2=V_2+1;
//IL_0059
V_3=0;
//IL_005b
}
//IL_005b
V_3=V_3+4;
//IL_005f
}
//IL_005f
*(outChars+V_2*2)=*(V_5+((*(inData+V_4)+0xfc)>>2)*2);
//IL_007b
*(outChars+(V_2+1)*2)=*(V_5+(((*(inData+V_4)&3)<<4)|((*(inData+V_4+1)&0xf0)>>4))*2);
//IL_00a5
*(outChars+(V_2+2)*2)=*(V_5+(((*(inData+V_4+1)&15)<<2)|((*(inData+V_4+2)&0xc0)>>6))*2);
//IL_00d2
*(outChars+(V_2+3)*2)=*(V_5+(*(inData+V_4+2)&63)*2);
//IL_00ed
V_2=V_2+4;
V_4=V_4+3;
//IL_00f7
}
//IL_00ff
V_4=V_1;
if(insertLineBreaks&&V_0!=0&&V_3==76)//不满足跳往//IL_0128
{
//IL_010e
*(outChars+V_2*2)='\r';
V_2=V_2+1;
*(outChars+V_2*2)='\n';
V_2=V_2+1;
//IL_0128
}
//IL_0128
V_7=V_0;
switch(V_7-1)
{
case 0:
{
//IL_01be
*(outChars+V_2*2)=*(V_5+((*(inData+V_4)&0xfc)>>2)*2);
//IL_01da
*(outChars+(V_2+1)*2)=*(V_5+((*(inData+V_4)&3)<<4)*2);
//IL_01f4
*(outChars+(V_2+2)*2)=*(V_5+0x80);
//IL_0208
*(outChars+(V_2+3)*2)=*(V_5+0x80);
//IL_021c
V_2=V_2+4;
//IL_0220
break;
}
case 1:
{
//IL_0141
*(outChars+V_2*2)=*(V_5+((*(inData+V_4)&0xfc)>>2)*2);
//IL_015d
*(outChars+(V_2+1)*2)=*(V_5+((*(inData+V_4)&3)<<4)|((*(inData+V_4+1)&0xf0)>>4)*2);
//IL_0187
*(outChars+(V_2+2)*2)=*(V_5+((*(inData+V_4+1)&15)<<2)*2);
//IL_01a4
*(outChars+(V_2+3)*2)=*(V_5+0x80);V_2=V_2+4;
//直接跳往IL_0220;
break;
}
}
//IL_0220
//V_5=null;
return V_2;
}
}
private static int CalculateOutputLength(int inputLength, bool insertLineBreaks)
{
// 代码大小 49 (0x31)
//.maxstack 3
//.locals init (int32 V_0,
// int32 V_1)
//IL_0000: ldarg.0
//IL_0001: ldc.i4.3
//IL_0002: div
//IL_0003: ldc.i4.4
//IL_0004: mul
//IL_0005: stloc.0
//IL_0006: ldloc.0
//IL_0007: ldarg.0
//IL_0008: ldc.i4.3
//IL_0009: rem
//IL_000a: brtrue.s IL_000f
//IL_000c: ldc.i4.0
//IL_000d: br.s IL_0010
//IL_000f: ldc.i4.4
//IL_0010: add
//IL_0011: stloc.0
//IL_0012: ldloc.0
//IL_0013: brtrue.s IL_0017
//IL_0015: ldloc.0
//IL_0016: ret
//IL_0017: ldarg.1
//IL_0018: brfalse.s IL_002f
//IL_001a: ldloc.0
//IL_001b: ldc.i4.s 76
//IL_001d: div
//IL_001e: stloc.1
//IL_001f: ldloc.0
//IL_0020: ldc.i4.s 76
//IL_0022: rem
//IL_0023: brtrue.s IL_0029
//IL_0025: ldloc.1
//IL_0026: ldc.i4.1
//IL_0027: sub
//IL_0028: stloc.1
//IL_0029: ldloc.0
//IL_002a: ldloc.1
//IL_002b: ldc.i4.2
//IL_002c: mul
//IL_002d: add
//IL_002e: stloc.0
//IL_002f: ldloc.0
//IL_0030: ret
int V_0,V_1;
V_0=inputLength/3*4;
V_0=inputLength%3==0?V_0+0:V_0+4;
if(V_0==0)
{
return V_0;
}
else
{
//IL_0017
if (insertLineBreaks)////IL_001a
{
V_1 = V_0 / 76;
if (V_0 % 76 == 0)
{
V_1 = V_1 - 1;
}
V_0 = V_0 + V_1 * 2;
return V_0;
}
else
{
return V_0;
}
}
}
public static byte[] FromBase64String(string s)
{
//internalcall
}
public static byte[] FromBase64CharArray(char[] inArray, int offset, int length)
{
//internalcall
}
private static Convert()
{
#region IL
// 代码大小 320 (0x140)
//.maxstack 3
//.locals init (class System.Type[] V_0)
//IL_0000: ldc.i4.s 19
//IL_0002: newarr System.Type
//IL_0007: stloc.0
//IL_0008: ldloc.0
//IL_0009: ldc.i4.0
//IL_000a: ldtoken System.Empty
//IL_000f: call class System.Type System.Type::GetTypeFromHandle(valuetype System.RuntimeTypeHandle)
//IL_0014: stelem.ref
//IL_0015: ldloc.0
//IL_0016: ldc.i4.1
//IL_0017: ldtoken System.Object
//IL_001c: call class System.Type System.Type::GetTypeFromHandle(valuetype System.RuntimeTypeHandle)
//IL_0021: stelem.ref
//IL_0022: ldloc.0
//IL_0023: ldc.i4.2
//IL_0024: ldtoken System.DBNull
//IL_0029: call class System.Type System.Type::GetTypeFromHandle(valuetype System.RuntimeTypeHandle)
//IL_002e: stelem.ref
//IL_002f: ldloc.0
//IL_0030: ldc.i4.3
//IL_0031: ldtoken System.Boolean
//IL_0036: call class System.Type System.Type::GetTypeFromHandle(valuetype System.RuntimeTypeHandle)
//IL_003b: stelem.ref
//IL_003c: ldloc.0
//IL_003d: ldc.i4.4
//IL_003e: ldtoken System.Char
//IL_0043: call class System.Type System.Type::GetTypeFromHandle(valuetype System.RuntimeTypeHandle)
//IL_0048: stelem.ref
//IL_0049: ldloc.0
//IL_004a: ldc.i4.5
//IL_004b: ldtoken System.SByte
//IL_0050: call class System.Type System.Type::GetTypeFromHandle(valuetype System.RuntimeTypeHandle)
//IL_0055: stelem.ref
//IL_0056: ldloc.0
//IL_0057: ldc.i4.6
//IL_0058: ldtoken System.Byte
//IL_005d: call class System.Type System.Type::GetTypeFromHandle(valuetype System.RuntimeTypeHandle)
//IL_0062: stelem.ref
//IL_0063: ldloc.0
//IL_0064: ldc.i4.7
//IL_0065: ldtoken System.Int16
//IL_006a: call class System.Type System.Type::GetTypeFromHandle(valuetype System.RuntimeTypeHandle)
//IL_006f: stelem.ref
//IL_0070: ldloc.0
//IL_0071: ldc.i4.8
//IL_0072: ldtoken System.UInt16
//IL_0077: call class System.Type System.Type::GetTypeFromHandle(valuetype System.RuntimeTypeHandle)
//IL_007c: stelem.ref
//IL_007d: ldloc.0
//IL_007e: ldc.i4.s 9
//IL_0080: ldtoken System.Int32
//IL_0085: call class System.Type System.Type::GetTypeFromHandle(valuetype System.RuntimeTypeHandle)
//IL_008a: stelem.ref
//IL_008b: ldloc.0
//IL_008c: ldc.i4.s 10
//IL_008e: ldtoken System.UInt32
//IL_0093: call class System.Type System.Type::GetTypeFromHandle(valuetype System.RuntimeTypeHandle)
//IL_0098: stelem.ref
//IL_0099: ldloc.0
//IL_009a: ldc.i4.s 11
//IL_009c: ldtoken System.Int64
//IL_00a1: call class System.Type System.Type::GetTypeFromHandle(valuetype System.RuntimeTypeHandle)
//IL_00a6: stelem.ref
//IL_00a7: ldloc.0
//IL_00a8: ldc.i4.s 12
//IL_00aa: ldtoken System.UInt64
//IL_00af: call class System.Type System.Type::GetTypeFromHandle(valuetype System.RuntimeTypeHandle)
//IL_00b4: stelem.ref
//IL_00b5: ldloc.0
//IL_00b6: ldc.i4.s 13
//IL_00b8: ldtoken System.Single
//IL_00bd: call class System.Type System.Type::GetTypeFromHandle(valuetype System.RuntimeTypeHandle)
//IL_00c2: stelem.ref
//IL_00c3: ldloc.0
//IL_00c4: ldc.i4.s 14
//IL_00c6: ldtoken System.Double
//IL_00cb: call class System.Type System.Type::GetTypeFromHandle(valuetype System.RuntimeTypeHandle)
//IL_00d0: stelem.ref
//IL_00d1: ldloc.0
//IL_00d2: ldc.i4.s 15
//IL_00d4: ldtoken System.Decimal
//IL_00d9: call class System.Type System.Type::GetTypeFromHandle(valuetype System.RuntimeTypeHandle)
//IL_00de: stelem.ref
//IL_00df: ldloc.0
//IL_00e0: ldc.i4.s 16
//IL_00e2: ldtoken System.DateTime
//IL_00e7: call class System.Type System.Type::GetTypeFromHandle(valuetype System.RuntimeTypeHandle)
//IL_00ec: stelem.ref
//IL_00ed: ldloc.0
//IL_00ee: ldc.i4.s 17
//IL_00f0: ldtoken System.Object
//IL_00f5: call class System.Type System.Type::GetTypeFromHandle(valuetype System.RuntimeTypeHandle)
//IL_00fa: stelem.ref
//IL_00fb: ldloc.0
//IL_00fc: ldc.i4.s 18
//IL_00fe: ldtoken System.String
//IL_0103: call class System.Type System.Type::GetTypeFromHandle(valuetype System.RuntimeTypeHandle)
//IL_0108: stelem.ref
//IL_0109: ldloc.0
//IL_010a: stsfld class System.Type[] System.Convert::ConvertTypes
//IL_010f: ldtoken System.Enum
//IL_0114: call class System.Type System.Type::GetTypeFromHandle(valuetype System.RuntimeTypeHandle)
//IL_0119: stsfld class System.Type System.Convert::EnumType
//IL_011e: ldc.i4.s 65
//IL_0120: newarr System.Char
//IL_0125: dup
//IL_0126: ldtoken field valuetype '<PrivateImplementationDetails>{194744EF-35AC-4CE8-91CB-4E0E512409CC}'/'__StaticArrayInitTypeSize=130' '<PrivateImplementationDetails>{194744EF-35AC-4CE8-91CB-4E0E512409CC}'::'$$method0x600530b-1'
//IL_012b: call void System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class System.Array,
// valuetype System.RuntimeFieldHandle)
//IL_0130: stsfld char[] System.Convert::base64Table
//IL_0135: ldsfld class System.DBNull System.DBNull::Value
//IL_013a: stsfld object System.Convert::DBNull
//IL_013f: ret
#endregion
type[] V_0;
V_0 = new type[19];
V_0[0] = typeof(System.Empty);
V_0[1] = typeof(object);
V_0[2] = typeof(System.DBNull);
V_0[3] = typeof(bool);
V_0[4] = typeof(char);
V_0[5] = typeof(sbyte);
V_0[6] = typeof(byte);
V_0[7] = typeof(short);
V_0[8] = typeof(ushort);
V_0[9] = typeof(int);
V_0[10] = typeof(uint);
V_0[11] = typeof(long);
V_0[12] = typeof(ulong);
V_0[13] = typeof(float);
V_0[14] = typeof(double);
V_0[15] = typeof(System.Decimal);
V_0[16] = typeof(System.DateTime);
V_0[17] = typeof(object);
V_0[18] = typeof(string);
System.Convert.ConvertTypes = V_0;
System.Convert.EnumType = typeof(System.Enum);
char[] V_1=new car[65];
System.Runtime.CompilerServices.RuntimeHelpers.InitializeArray(V_1,'<PrivateImplementationDetails>{194744EF-35AC-4CE8-91CB-4E0E512409CC}'.'$$method0x600530b-1');
System.Convert.base64Table=V_1;
System.Convert.DBNull=System.DBNull.Value;
}
}
}