System.SByte

using System.Runtime.InteropServices;
using System.Globalization;
namespace System
{
    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi), Serializable, ComVisible(true), CLSCompliant(false)]
    public struct SByte : IComparable, IFormattable, IConvertible, IComparable<sbyte>, IEquatable<sbyte>
    {
        public const sbyte MaxValue = (sbyte)0x7F;
        public const sbyte MinValue = (sbyte)0x80;
        private sbyte m_value;
        public new virtual sealed int CompareTo(object obj)
        {
            //.maxstack  8
            //IL_0000:  ldarg.1
            //IL_0001:  brtrue.s   IL_0005

            //IL_0003:  ldc.i4.1
            //IL_0004:  ret

            //IL_0005:  ldarg.1
            //IL_0006:  isinst     System.SByte
            //IL_000b:  brtrue.s   IL_001d

            //IL_000d:  ldstr      "Arg_MustBeSByte"
            //IL_0012:  call       string System.Environment::GetResourceString(string)
            //IL_0017:  newobj     instance void System.ArgumentException::.ctor(string)
            //IL_001c:  throw

            //IL_001d:  ldarg.0
            //IL_001e:  ldind.i1
            //IL_001f:  ldarg.1
            //IL_0020:  unbox.any  System.SByte
            //IL_0025:  sub
            //IL_0026:  ret
            if (obj!=null)
            {
                if ((obj as sbyte) == null)
                {
                    throw new ArgumentException(Environment.GetResourceString("Arg_MustBeSByte"));
                }
                else
                {
                    return(this-(sbyte)obj);
                }
            }
            else
            {
                return 1;
            }
        }
        public new virtual sealed int CompareTo(sbyte @value)
        {
            //.maxstack  8
            //IL_0000:  ldarg.0
            //IL_0001:  ldind.i1
            //IL_0002:  ldarg.1
            //IL_0003:  sub
            //IL_0004:  ret
            return this - @value;
        }
        public override bool Equals(object obj)
        {
            //.maxstack  8
            //IL_0000:  ldarg.1
            //IL_0001:  isinst     System.SByte
            //IL_0006:  brtrue.s   IL_000a

            //IL_0008:  ldc.i4.0
            //IL_0009:  ret

            //IL_000a:  ldarg.0
            //IL_000b:  ldind.i1
            //IL_000c:  ldarg.1
            //IL_000d:  unbox.any  System.SByte
            //IL_0012:  ceq
            //IL_0014:  ret
            if ((obj as sbyte) == null)
            {
                return false;
            }
            else
            {
                return (this == (sbyte)obj);
            }
        }
        public new virtual sealed bool Equals(sbyte obj)
        {
            //.maxstack  8
            //IL_0000:  ldarg.0
            //IL_0001:  ldind.i1
            //IL_0002:  ldarg.1
            //IL_0003:  ceq
            //IL_0005:  ret
            return (this==obj);
        }
        public override int GetHashCode()
        {
            //.maxstack  8
            //IL_0000:  ldarg.0
            //IL_0001:  ldind.i1
            //IL_0002:  ldarg.0
            //IL_0003:  ldind.i1
            //IL_0004:  ldc.i4.8
            //IL_0005:  shl
            //IL_0006:  xor
            //IL_0007:  ret
            return (this ^ (this << 8));
        }
        public override string ToString()
        {
            //.maxstack  8
            //IL_0000:  ldarg.0
            //IL_0001:  ldind.i1
            //IL_0002:  ldnull
            //IL_0003:  call       class System.Globalization.NumberFormatInfo System.Globalization.NumberFormatInfo::get_CurrentInfo()
            //IL_0008:  call       string System.Number::FormatInt32(int32,
            //                                                       string,
            //                                                       class System.Globalization.NumberFormatInfo)
            //IL_000d:  ret
            return System.Number.FormatInt32(this, null, NumberFormatInfo.CurrentInfo);
        }

        public new virtual sealed string ToString(IFormatProvider provider)
        {
            //.maxstack  8
            //IL_0000:  ldarg.0
            //IL_0001:  ldind.i1
            //IL_0002:  ldnull
            //IL_0003:  ldarg.1
            //IL_0004:  call       class System.Globalization.NumberFormatInfo System.Globalization.NumberFormatInfo::GetInstance(class System.IFormatProvider)
            //IL_0009:  call       string System.Number::FormatInt32(int32,
            //                                                       string,
            //                                                       class System.Globalization.NumberFormatInfo)
            //IL_000e:  ret
            return System.Number.FormatInt32(this, null, NumberFormatInfo.GetInstance(provider));

        }

        public string ToString(string format)
        {
            //.maxstack  8
            //IL_0000:  ldarg.0
            //IL_0001:  ldarg.1
            //IL_0002:  call       class System.Globalization.NumberFormatInfo System.Globalization.NumberFormatInfo::get_CurrentInfo()
            //IL_0007:  call       instance string System.SByte::ToString(string,
            //                                                            class System.Globalization.NumberFormatInfo)
            //IL_000c:  ret
            return this.ToString(format, NumberFormatInfo.CurrentInfo);
        }
        public new virtual sealed string ToString(string format, IFormatProvider provider)
        {
            //.maxstack  8
            //IL_0000:  ldarg.0
            //IL_0001:  ldarg.1
            //IL_0002:  ldarg.2
            //IL_0003:  call       class System.Globalization.NumberFormatInfo System.Globalization.NumberFormatInfo::GetInstance(class System.IFormatProvider)
            //IL_0008:  call       instance string System.SByte::ToString(string,
            //                                                            class System.Globalization.NumberFormatInfo)
            //IL_000d:  ret
            return this.ToString(format,NumberFormatInfo.GetInstance(provider));
        }
        private string ToString(string format, NumberFormatInfo info)
        {
            //.maxstack  3
            //.locals init (uint32 V_0)                     
            //IL_0000:  ldarg.0
            //IL_0001:  ldind.i1
            //IL_0002:  ldc.i4.0
            //IL_0003:  bge.s      IL_0039

            //IL_0005:  ldarg.1
            //IL_0006:  brfalse.s  IL_0039

            //IL_0008:  ldarg.1                    
            //IL_0009:  callvirt   instance int32 System.String::get_Length()
            //IL_000e:  ldc.i4.0
            //IL_000f:  ble.s      IL_0039

            //IL_0011:  ldarg.1
            //IL_0012:  ldc.i4.0
            //IL_0013:  callvirt   instance char System.String::get_Chars(int32)
            //IL_0018:  ldc.i4.s   88
            //IL_001a:  beq.s      IL_0027

            //IL_001c:  ldarg.1
            //IL_001d:  ldc.i4.0
            //IL_001e:  callvirt   instance char System.String::get_Chars(int32)
            //IL_0023:  ldc.i4.s   120
            //IL_0025:  bne.un.s   IL_0039

            //IL_0027:  ldarg.0            
            //IL_0028:  ldind.i1
            //IL_0029:  ldc.i4     0xff
            //IL_002e:  and
            //IL_002f:  stloc.0
            //IL_0030:  ldloc.0
            //IL_0031:  ldarg.1
            //IL_0032:  ldarg.2
            //IL_0033:  call       string System.Number::FormatUInt32(uint32,
            //                                                        string,
            //                                                        class System.Globalization.NumberFormatInfo)
            //IL_0038:  ret

            //IL_0039:  ldarg.0
            //IL_003a:  ldind.i1
            //IL_003b:  ldarg.1
            //IL_003c:  ldarg.2
            //IL_003d:  call       string System.Number::FormatInt32(int32,
            //                                                      string,
            //                                                       class System.Globalization.NumberFormatInfo)
            //IL_0042:  ret
            uint V_0;
            if (this < 0 && format != null)
            {
                //IL_0008
                if(format.Length>0)
                {
                    if (format[0] == 'X' || format[0] == 'x')
                    {
                        //IL_0027
                        V_0=(uint)(this&0xff);
                        return System.Number.FormatUInt32(V_0,format,info);
                    }                   
                }                
            }            
            //IL_0039
            return System.Number.FormatInt32(this, format, info);

        }
        [CLSCompliantAttribute(false)]
        public static sbyte  Parse(string s)
        {        
            // 代码大小       13 (0xd)
            //.maxstack  8
            //IL_0000:  ldarg.0
            //IL_0001:  ldc.i4.7
            //IL_0002:  call       class System.Globalization.NumberFormatInfo System.Globalization.NumberFormatInfo::get_CurrentInfo()
            //IL_0007:  call       int8 System.SByte::Parse(string,
            //                                                valuetype System.Globalization.NumberStyles,
            //                                                class System.Globalization.NumberFormatInfo)
            //IL_000c:  ret
            return System.SByte.Parse(s,NumberStyles.Integer,System.Globalization.NumberFormatInfo.CurrentInfo);
        } 
        [CLSCompliantAttribute(false)]
        public static sbyte Parse(string s, System.Globalization.NumberStyles style)
        {        
            // 代码大小       19 (0x13)
            //.maxstack  8
            //IL_0000:  ldarg.1
            //IL_0001:  call       void System.Globalization.NumberFormatInfo::ValidateParseStyleInteger(valuetype System.Globalization.NumberStyles)
            //IL_0006:  ldarg.0
            //IL_0007:  ldarg.1
            //IL_0008:  call       class System.Globalization.NumberFormatInfo System.Globalization.NumberFormatInfo::get_CurrentInfo()
            //IL_000d:  call       int8 System.SByte::Parse(string,
            //                                                valuetype System.Globalization.NumberStyles,
            //                                                class System.Globalization.NumberFormatInfo)
            //IL_0012:  ret
            System.Globalization.NumberFormatInfo.ValidateParseStyleInteger(style);
            return System.SByte.Parse(s, style, System.Globalization.NumberFormatInfo.CurrentInfo);
        } 
        [CLSCompliantAttribute(false)]
        public static sbyte Parse(string s,System.IFormatProvider provider)
        {        
            // 代码大小       14 (0xe)
            //.maxstack  8
            //IL_0000:  ldarg.0
            //IL_0001:  ldc.i4.7
            //IL_0002:  ldarg.1
            //IL_0003:  call       class System.Globalization.NumberFormatInfo System.Globalization.NumberFormatInfo::GetInstance(class System.IFormatProvider)
            //IL_0008:  call       int8 System.SByte::Parse(string,
            //                                                valuetype System.Globalization.NumberStyles,
            //                                                class System.Globalization.NumberFormatInfo)
            //IL_000d:  ret
            return System.SByte.Parse(s, NumberStyles.Integer, System.Globalization.NumberFormatInfo.GetInstance(provider));
        } 
        [CLSCompliantAttribute(false)]
        public static sbyte Parse(string s,System.Globalization.NumberStyles style,System.IFormatProvider provider)
        {        
            // 代码大小       20 (0x14)
            //.maxstack  8
            //IL_0000:  ldarg.1
            //IL_0001:  call       void System.Globalization.NumberFormatInfo::ValidateParseStyleInteger(valuetype System.Globalization.NumberStyles)
            //IL_0006:  ldarg.0
            //IL_0007:  ldarg.1
            //IL_0008:  ldarg.2
            //IL_0009:  call       class System.Globalization.NumberFormatInfo System.Globalization.NumberFormatInfo::GetInstance(class System.IFormatProvider)
            //IL_000e:  call       int8 System.SByte::Parse(string,
            //                                                valuetype System.Globalization.NumberStyles,
            //                                                class System.Globalization.NumberFormatInfo)
            //IL_0013:  ret
            System.Globalization.NumberFormatInfo.ValidateParseStyleInteger(style);
            return System.SByte.Parse(s, style, System.Globalization.NumberFormatInfo.GetInstance(provider));
        } 
        [CLSCompliantAttribute(false)]
        private static sbyte  Parse(string s,System.Globalization.NumberStyles style,System.Globalization.NumberFormatInfo info)
        {
            // 代码大小       100 (0x64)
            //.maxstack  3
            //.locals init (int32 V_0,                         
            //            class System.OverflowException V_1)
            //IL_0000:  ldc.i4.0
            //IL_0001:  stloc.0
            //.try                                
            //{
            //    IL_0002:  ldarg.0
            //    IL_0003:  ldarg.1
            //    IL_0004:  ldarg.2
            //    IL_0005:  call       int32 System.Number::ParseInt32(string,
            //                                                        valuetype System.Globalization.NumberStyles,
            //                                                        class System.Globalization.NumberFormatInfo)
            //    IL_000a:  stloc.0
            //    IL_000b:  leave.s    IL_001f

            //}  // end .try
            //catch System.OverflowException                         
            //{
            //    IL_000d:  stloc.1
            //    IL_000e:  ldstr      "Overflow_SByte"
            //    IL_0013:  call       string System.Environment::GetResourceString(string)
            //    IL_0018:  ldloc.1
            //    IL_0019:  newobj     instance void System.OverflowException::.ctor(string,
            //                                                                        class System.Exception)
            //    IL_001e:  throw

            //}  // end handler
            //IL_001f:  ldarg.1                                 
            //IL_0020:  ldc.i4     0x200
            //IL_0025:  and
            //IL_0026:  brfalse.s  IL_0047

            //IL_0028:  ldloc.0                         
            //IL_0029:  ldc.i4.0
            //IL_002a:  blt.s      IL_0034

            //IL_002c:  ldloc.0
            //IL_002d:  ldc.i4     0xff
            //IL_0032:  ble.s      IL_0044

            //IL_0034:  ldstr      "Overflow_SByte"             
            //IL_0039:  call       string System.Environment::GetResourceString(string)
            //IL_003e:  newobj     instance void System.OverflowException::.ctor(string)
            //IL_0043:  throw

            //IL_0044:  ldloc.0          
            //IL_0045:  conv.i1
            //IL_0046:  ret

            //IL_0047:  ldloc.0              
            //IL_0048:  ldc.i4.s   -128
            //IL_004a:  blt.s      IL_0051

            //IL_004c:  ldloc.0
            //IL_004d:  ldc.i4.s   127
            //IL_004f:  ble.s      IL_0061

            //IL_0051:  ldstr      "Overflow_SByte"
            //IL_0056:  call       string System.Environment::GetResourceString(string)
            //IL_005b:  newobj     instance void System.OverflowException::.ctor(string)
            //IL_0060:  throw

            //IL_0061:  ldloc.0
            //IL_0062:  conv.i1
            //IL_0063:  ret
            int V_0;            
            V_0=0;
            try
            {
                V_0 = System.Number.ParseInt32(s, style, info);
            }
            catch(System.OverflowException V_1)
            {
                throw new  System.OverflowException(System.Environment.GetResourceString(Overflow_SByte"),V_1);
            }
            if(style&System.Globalization.NumberStyles.AllowHexSpecifier!=0)
            {
                //IL_0028
                if(V_0>=0&&V_0<=0xff)
                {
                    //IL_0044 
                    return (sbyte)V_0;                  
                }
               
                //IL_0034
                throw new System.OverflowException(System.Environment.GetResourceString("Overflow_SByte"));
            }
            else
            {
                //IL_0047
                if(V_0>=-128&&V_0<=127)
                {
                    return (sbyte)V_0;
                }
                else
                {
                    throw new System.OverflowException(System.Environment.GetResourceString("Overflow_SByte"));
                }
            }

        }
        [CLSCompliantAttribute(false)]
        public static bool  TryParse(string s,out sbyte result)
        {        
            // 代码大小       14 (0xe)
            //.maxstack  8
            //IL_0000:  ldarg.0
            //IL_0001:  ldc.i4.7
            //IL_0002:  call       class System.Globalization.NumberFormatInfo System.Globalization.NumberFormatInfo::get_CurrentInfo()
            //IL_0007:  ldarg.1
            //IL_0008:  call       bool System.SByte::TryParse(string,
            //                                                    valuetype System.Globalization.NumberStyles,
            //                                                    class System.Globalization.NumberFormatInfo,
            //                                                    int8&)
            //IL_000d:  ret
            return System.SByte.TryParse(s,System.Globalization.NumberStyles.Integer,System.Globalization.NumberFormatInfo.CurrentInfo,out result);
        }
        [CLSCompliantAttribute(false)]
        public static bool  TryParse(string s,System.Globalization.NumberStyles style,System.IFormatProvider provider,out sbyte result)
        {         
            // 代码大小       21 (0x15)
            //.maxstack  8
            //IL_0000:  ldarg.1
            //IL_0001:  call       void System.Globalization.NumberFormatInfo::ValidateParseStyleInteger(valuetype System.Globalization.NumberStyles)
            //IL_0006:  ldarg.0
            //IL_0007:  ldarg.1
            //IL_0008:  ldarg.2
            //IL_0009:  call       class System.Globalization.NumberFormatInfo System.Globalization.NumberFormatInfo::GetInstance(class System.IFormatProvider)
            //IL_000e:  ldarg.3
            //IL_000f:  call       bool System.SByte::TryParse(string,
            //                                                    valuetype System.Globalization.NumberStyles,
            //                                                    class System.Globalization.NumberFormatInfo,
            //                                                    int8&)
            //IL_0014:  ret
            System.Globalization.NumberFormatInfo.ValidateParseStyleInteger(style);
            return System.SByte.TryParse(s,style,System.Globalization.NumberFormatInfo.GetInstance(provider),out result);
        }

        private static bool TryParse(string s,System.Globalization.NumberStyles style,System.Globalization.NumberFormatInfo info,out sbyte result)
        {
            // 代码大小       64 (0x40)
            //.maxstack  4
            //.locals init (int32 V_0)               
            //IL_0000:  ldarg.3
            //IL_0001:  ldc.i4.0
            //IL_0002:  stind.i1
            //IL_0003:  ldarg.0
            //IL_0004:  ldarg.1
            //IL_0005:  ldarg.2
            //IL_0006:  ldloca.s   V_0
            //IL_0008:  call       bool System.Number::TryParseInt32(string,
            //                                                        valuetype System.Globalization.NumberStyles,
            //                                                        class System.Globalization.NumberFormatInfo,
            //                                                        int32&)
            //IL_000d:  brtrue.s   IL_0011

            //IL_000f:  ldc.i4.0
            //IL_0010:  ret

            //IL_0011:  ldarg.1                    
            //IL_0012:  ldc.i4     0x200
            //IL_0017:  and
            //IL_0018:  brfalse.s  IL_002e

            //IL_001a:  ldloc.0
            //IL_001b:  ldc.i4.0
            //IL_001c:  blt.s      IL_0026

            //IL_001e:  ldloc.0
            //IL_001f:  ldc.i4     0xff
            //IL_0024:  ble.s      IL_0028

            //IL_0026:  ldc.i4.0
            //IL_0027:  ret

            //IL_0028:  ldarg.3               
            //IL_0029:  ldloc.0
            //IL_002a:  conv.i1
            //IL_002b:  stind.i1
            //IL_002c:  ldc.i4.1
            //IL_002d:  ret

            //IL_002e:  ldloc.0                    
            //IL_002f:  ldc.i4.s   -128
            //IL_0031:  blt.s      IL_0038

            //IL_0033:  ldloc.0
            //IL_0034:  ldc.i4.s   127
            //IL_0036:  ble.s      IL_003a

            //IL_0038:  ldc.i4.0
            //IL_0039:  ret

            //IL_003a:  ldarg.3
            //IL_003b:  ldloc.0
            //IL_003c:  conv.i1
            //IL_003d:  stind.i1
            //IL_003e:  ldc.i4.1
            //IL_003f:  ret
            int V_0;
            result=(sbyte)0; 
            if(System.Number.TryParseInt32(s,style,info,out V_0))
            {
                //IL_0011
                if(style&System.Globalization.NumberStyles.AllowHexSpecifier==0)
                {
                    //IL_002e
                    if(V_0>=-128&&V_0<=127)
                    {
                        result=(sbyte)V_0;
                        return true; 
                    }
                    
                }
                else
                {
                    if(V_0>=0&&V_0<=0xff)
                    {
                        //IL_0028 
                        result=(sbyte)V_0; 
                        return true;
                    }
                    
                }
            }
            
            return false;
        } 

        public new virtual sealed System.TypeCode GetTypeCode()
        {
            // 代码大小       2 (0x2)
            //.maxstack  8
            //IL_0000:  ldc.i4.5
            //IL_0001:  ret
            return System.TypeCode.SByte;
        }

        private new virtual sealed bool System.IConvertible.ToBoolean(System.IFormatProvider provider)
        {        
            // 代码大小       8 (0x8)
            //.maxstack  8
            //IL_0000:  ldarg.0
            //IL_0001:  ldind.i1
            //IL_0002:  call       bool System.Convert::ToBoolean(int8)
            //IL_0007:  ret
            return System.Convert.ToBoolean(this);
        }

        private new virtual sealed char System.IConvertible.ToChar(System.IFormatProvider provider)
        {        
            // 代码大小       8 (0x8)
            //.maxstack  8
            //IL_0000:  ldarg.0
            //IL_0001:  ldind.i1
            //IL_0002:  call       char System.Convert::ToChar(int8)
            //IL_0007:  ret
            return System.Convert.ToChar(this);
        }

        private new virtual sealed sbyte System.IConvertible.ToSByte(System.IFormatProvider provider)
        {        
            // 代码大小       3 (0x3)
            //.maxstack  8
            //IL_0000:  ldarg.0
            //IL_0001:  ldind.i1
            //IL_0002:  ret
            return this;
        } 

        private new virtual sealed byte System.IConvertible.ToByte(System.IFormatProvider provider)
        {        
            // 代码大小       8 (0x8)
            //.maxstack  8
            //IL_0000:  ldarg.0
            //IL_0001:  ldind.i1
            //IL_0002:  call       uint8 System.Convert::ToByte(int8)
            //IL_0007:  ret
            return System.Convert.ToByte(this);
        } 

        private new virtual sealed short System.IConvertible.ToInt16(System.IFormatProvider provider)
        {        
            // 代码大小       8 (0x8)
            //.maxstack  8
            //IL_0000:  ldarg.0
            //IL_0001:  ldind.i1
            //IL_0002:  call       int16 System.Convert::ToInt16(int8)
            //IL_0007:  ret
            return System.Convert.ToInt16(this);
        }

        private new virtual sealed ushort System.IConvertible.ToUInt16(System.IFormatProvider provider)
        {        
            // 代码大小       8 (0x8)
            //.maxstack  8
            //IL_0000:  ldarg.0
            //IL_0001:  ldind.i1
            //IL_0002:  call       uint16 System.Convert::ToUInt16(int8)
            //IL_0007:  ret
            return System.Convert.ToUInt16(this);
        } 

        private new virtual sealed int System.IConvertible.ToInt32(System.IFormatProvider provider)
        {        
            // 代码大小       3 (0x3)
            //.maxstack  8
            //IL_0000:  ldarg.0
            //IL_0001:  ldind.i1
            //IL_0002:  ret
            return this;
        }

        private new virtual sealed uint System.IConvertible.ToUInt32(System.IFormatProvider provider)
        {        
            // 代码大小       8 (0x8)
            //.maxstack  8
            //IL_0000:  ldarg.0
            //IL_0001:  ldind.i1
            //IL_0002:  call       uint32 System.Convert::ToUInt32(int8)
            //IL_0007:  ret
            return System.Convert.ToUInt32(this);
        } 

        private new virtual sealed long System.IConvertible.ToInt64(System.IFormatProvider provider)
        {       
            // 代码大小       8 (0x8)
            //.maxstack  8
            //IL_0000:  ldarg.0
            //IL_0001:  ldind.i1
            //IL_0002:  call       int64 System.Convert::ToInt64(int8)
            //IL_0007:  ret
            return System.Convert.ToInt64(this);
        } 

        private new virtual sealed ulong System.IConvertible.ToUInt64(System.IFormatProvider provider)
        {        
            // 代码大小       8 (0x8)
            //.maxstack  8
            //IL_0000:  ldarg.0
            //IL_0001:  ldind.i1
            //IL_0002:  call       uint64 System.Convert::ToUInt64(int8)
            //IL_0007:  ret
            return System.Convert.ToUInt64(this);
        }

        private new virtual sealed float System.IConvertible.ToSingle(System.IFormatProvider provider)
        {        
            // 代码大小       8 (0x8)
            //.maxstack  8
            //IL_0000:  ldarg.0
            //IL_0001:  ldind.i1
            //IL_0002:  call       float32 System.Convert::ToSingle(int8)
            //IL_0007:  ret
            return System.Convert.ToSingle(this);
        }

        private new virtual sealed double System.IConvertible.ToDouble(System.IFormatProvider provider)
        {        
            // 代码大小       8 (0x8)
            //.maxstack  8
            //IL_0000:  ldarg.0
            //IL_0001:  ldind.i1
            //IL_0002:  call       float64 System.Convert::ToDouble(int8)
            //IL_0007:  ret
            return System.Convert.ToDouble(this);
        }

        private new virtual sealed System.Decimal System.IConvertible.ToDecimal(System.IFormatProvider provider)
        {        
            // 代码大小       8 (0x8)
            //.maxstack  8
            //IL_0000:  ldarg.0
            //IL_0001:  ldind.i1
            //IL_0002:  call       valuetype System.Decimal System.Convert::ToDecimal(int8)
            //IL_0007:  ret
            return System.Convert.ToDecimal(this);
        }

        private new virtual sealed System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider)
        {        
            // 代码大小       40 (0x28)
            //.maxstack  4
            //.locals init (object[] V_0)
            //IL_0000:  ldstr      "InvalidCast_FromTo"
            //IL_0005:  ldc.i4.2
            //IL_0006:  newarr     System.Object
            //IL_000b:  stloc.0
            //IL_000c:  ldloc.0
            //IL_000d:  ldc.i4.0
            //IL_000e:  ldstr      "SByte"
            //IL_0013:  stelem.ref
            //IL_0014:  ldloc.0
            //IL_0015:  ldc.i4.1
            //IL_0016:  ldstr      "DateTime"
            //IL_001b:  stelem.ref
            //IL_001c:  ldloc.0
            //IL_001d:  call       string System.Environment::GetResourceString(string,
            //                                                                    object[])
            //IL_0022:  newobj     instance void System.InvalidCastException::.ctor(string)
            //IL_0027:  throw
            object[] V_0;
            V_0=new object[2];
            V_0[0]="SByte";
            V_0[1]="DateTime";
            throw new System.InvalidCastException(System.Environment.GetResourceString("InvalidCast_FromTo",V_0));
        }

        private new virtual sealed object System.IConvertible.ToType(System.Type @type,System.IFormatProvider provider)
        {        
            //// 代码大小       15 (0xf)
            //.maxstack  8
            //IL_0000:  ldarg.0
            //IL_0001:  ldind.i1
            //IL_0002:  box        System.SByte
            //IL_0007:  ldarg.1
            //IL_0008:  ldarg.2
            //IL_0009:  call       object System.Convert::DefaultToType(class System.IConvertible,
            //                                                            class System.Type,
            //                                                            class System.IFormatProvider)
            //IL_000e:  ret
           return System.Convert.DefaultToType((object)this,@type,provider);
        }
    }
}


posted @ 2010-08-28 21:17  Aegis  阅读(348)  评论(0编辑  收藏  举报