System.UInt64

using System.Globalization;
using System.Runtime.InteropServices;
namespace System
{
    [StructLayout(LayoutKind.Sequential),Serializable]
    [ComVisilble(true),CLSCompliant(fasle)]
    public struct UInt64:System.IComparable,System.IFormattable,System.IConvertible,System.IComparable<ulong>,System.IEquatable<ulong>
    {      
      public const ulong MaxValue = 0xFFFFFFFFFFFFFFFF;
      public const ulong MinValue = (ulong)0x0;
      private ulong m_value;
      public new virtual sealed int CompareTo(object @value)
      {
        // 代码大小       52 (0x34)
        //.maxstack  2
        //.locals init (uint64 V_0)
        //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.UInt64
        //IL_000b:  brfalse.s  IL_0024

        //IL_000d:  ldarg.1
        //IL_000e:  unbox.any  System.UInt64
        //IL_0013:  stloc.0
        //IL_0014:  ldarg.0
        //IL_0015:  ldind.i8
        //IL_0016:  ldloc.0
        //IL_0017:  bge.un.s   IL_001b

        //IL_0019:  ldc.i4.m1
        //IL_001a:  ret

        //IL_001b:  ldarg.0
        //IL_001c:  ldind.i8
        //IL_001d:  ldloc.0
        //IL_001e:  ble.un.s   IL_0022

        //IL_0020:  ldc.i4.1
        //IL_0021:  ret

        //IL_0022:  ldc.i4.0
        //IL_0023:  ret

        //IL_0024:  ldstr      "Arg_MustBeUInt64"
        //IL_0029:  call       string System.Environment::GetResourceString(string)
        //IL_002e:  newobj     instance void System.ArgumentException::.ctor(string)
        //IL_0033:  throw
          ulong V_0;
          if (@value == null)
          {
              return 1;
          }
          else
          {
              if (@value as System.UInt64 == null)
              {
                  throw new System.ArgumentException(System.Environment.GetResourceString("Arg_MustBeUInt64"));
              }
              else
              {
                  V_0 = (ulong)@value;
                  if (this >= V_0)
                  {
                      if (this <= V_0)
                      {
                          return 0;
                      }
                      else
                      {
                          return 1;
                      }
                  }
                  else
                  {
                      return -1;
                  }
              }
          }

      }

      public new virtual sealed int CompareTo(ulong @value)
      {
        // 代码大小       16 (0x10)
        //.maxstack  8
        //IL_0000:  ldarg.0
        //IL_0001:  ldind.i8
        //IL_0002:  ldarg.1
        //IL_0003:  bge.un.s   IL_0007

        //IL_0005:  ldc.i4.m1
        //IL_0006:  ret

        //IL_0007:  ldarg.0
        //IL_0008:  ldind.i8
        //IL_0009:  ldarg.1
        //IL_000a:  ble.un.s   IL_000e

        //IL_000c:  ldc.i4.1
        //IL_000d:  ret

        //IL_000e:  ldc.i4.0
        //IL_000f:  ret
          if (this >= @value)
          {
              if (this <= @value)
              {
                  return 0;
              }
              else
              {
                  return 1;
              }
          }
          else
          {
              return -1;
          }
      }

      public override bool Equals(object obj)
      {
        // 代码大小       21 (0x15)
        //.maxstack  8
        //IL_0000:  ldarg.1
        //IL_0001:  isinst     System.UInt64
        //IL_0006:  brtrue.s   IL_000a

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

        //IL_000a:  ldarg.0
        //IL_000b:  ldind.i8
        //IL_000c:  ldarg.1
        //IL_000d:  unbox.any  System.UInt64
        //IL_0012:  ceq
        //IL_0014:  ret
          if (obj as ulong == null)
          {
              return false;
          }
          else
          {
              return this == (ulong)obj;
          }

      }

      public new virtual sealed bool Equals(ulong obj)
      {
        // 代码大小       6 (0x6)
        //.maxstack  8
        //IL_0000:  ldarg.0
        //IL_0001:  ldind.i8
        //IL_0002:  ldarg.1
        //IL_0003:  ceq
        //IL_0005:  ret
          return this == obj;
      } 

      public override int GetHashCode()
      {
        // 代码大小       11 (0xb)
        //.maxstack  8
        //IL_0000:  ldarg.0
        //IL_0001:  ldind.i8
        //IL_0002:  conv.i4
        //IL_0003:  ldarg.0
        //IL_0004:  ldind.i8
        //IL_0005:  ldc.i4.s   32
        //IL_0007:  shr.un
        //IL_0008:  conv.i4
        //IL_0009:  xor
        //IL_000a:  ret
          return (int)this ^ (int)(this >> 32);
      } 

      public override string ToString()
      {
        // 代码大小       14 (0xe)
        //.maxstack  8
        //IL_0000:  ldarg.0
        //IL_0001:  ldind.i8
        //IL_0002:  ldnull
        //IL_0003:  call       class System.Globalization.NumberFormatInfo System.Globalization.NumberFormatInfo::get_CurrentInfo()
        //IL_0008:  call       string System.Number::FormatUInt64(uint64,
        //                                                        string,
        //                                                        class System.Globalization.NumberFormatInfo)
        //IL_000d:  ret
          return System.Number.FormatUInt64(this,null,NumberFormatInfo.CurrentInfo);
      }

      public new virtual sealed string ToString(System.IFormatProvider provider)
      {
        // 代码大小       15 (0xf)
        //.maxstack  8
        //IL_0000:  ldarg.0
        //IL_0001:  ldind.i8
        //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::FormatUInt64(uint64,
        //                                                        string,
        //                                                        class System.Globalization.NumberFormatInfo)
        //IL_000e:  ret
          return System.Number.FormatUInt64(this, null, NumberFormatInfo.GetInstance(provider)); 
      }

      public string ToString(string format)
      {
        // 代码大小       14 (0xe)
        //.maxstack  8
        //IL_0000:  ldarg.0
        //IL_0001:  ldind.i8
        //IL_0002:  ldarg.1
        //IL_0003:  call       class System.Globalization.NumberFormatInfo System.Globalization.NumberFormatInfo::get_CurrentInfo()
        //IL_0008:  call       string System.Number::FormatUInt64(uint64,
        //                                                        string,
        //                                                        class System.Globalization.NumberFormatInfo)
        //IL_000d:  ret
          return System.Number.FormatUInt64(this, format, NumberFormatInfo.CurrentInfo);
      }

      public new virtual sealed string ToString(string format,System.IFormatProvider provider)
      {
        // 代码大小       15 (0xf)
        //.maxstack  8
        //IL_0000:  ldarg.0
        //IL_0001:  ldind.i8
        //IL_0002:  ldarg.1
        //IL_0003:  ldarg.2
        //IL_0004:  call       class System.Globalization.NumberFormatInfo System.Globalization.NumberFormatInfo::GetInstance(class System.IFormatProvider)
        //IL_0009:  call       string System.Number::FormatUInt64(uint64,
        //                                                        string,
        //                                                        class System.Globalization.NumberFormatInfo)
        //IL_000e:  ret
          return System.Number.FormatUInt64(this, format, NumberFormatInfo.GetInstance(provider));
      }
      [CLSCompliant(false)]
      public static ulong 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       uint64 System.Number::ParseUInt64(string,
        //                                                       valuetype System.Globalization.NumberStyles,
        //                                                       class System.Globalization.NumberFormatInfo)
        //IL_000c:  ret
          return System.Number.ParseUInt64(s, NumberStyles.Integer, NumberFormatInfo.CurrentInfo);
      }
      [CLSCompliant(false)]
      public static ulong 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       uint64 System.Number::ParseUInt64(string,
        //                                                       valuetype System.Globalization.NumberStyles,
        //                                                       class System.Globalization.NumberFormatInfo)
        //IL_0012:  ret
          NumberFormatInfo.ValidateParseStyleInteger(style);
          return System.Number.ParseUInt64(s, style, NumberFormatInfo.CurrentInfo); 
      }
      [CLSCompliant(false)]
      public static ulong 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       uint64 System.Number::ParseUInt64(string,
        //                                                       valuetype System.Globalization.NumberStyles,
        //                                                       class System.Globalization.NumberFormatInfo)
        //IL_000d:  ret
          return System.Number.ParseUInt64(s, NumberStyles.Integer, NumberFormatInfo.GetInstance(provider));
      }
      [CLSCompliant(false)]
      public static ulong 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       uint64 System.Number::ParseUInt64(string,
        //                                                       valuetype System.Globalization.NumberStyles,
        //                                                       class System.Globalization.NumberFormatInfo)
        //IL_0013:  ret
          NumberFormatInfo.ValidateParseStyleInteger(style);
          return System.Number.ParseUInt64(s, style, NumberFormatInfo.GetInstance(provider));
      }
      [CLSCompliant(false)]
      public static bool TryParse(string s,out ulong 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.Number::TryParseUInt64(string,
        //                                                        valuetype System.Globalization.NumberStyles,
        //                                                        class System.Globalization.NumberFormatInfo,
        //                                                        uint64&)
        //IL_000d:  ret
          return System.Number.TryParseUInt64(s, NumberStyles.Integer, NumberFormatInfo.CurrentInfo, out result);
      }
      [CLSCompliant(false)]
      public static bool TryParse(string s,System.Globalization.NumberStyles style,System.IFormatProvider provider,out ulong 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.Number::TryParseUInt64(string,
        //                                                        valuetype System.Globalization.NumberStyles,
        //                                                        class System.Globalization.NumberFormatInfo,
        //                                                        uint64&)
        //IL_0014:  ret
          NumberFormatInfo.ValidateParseStyleInteger(style);
          return System.Number.TryParseUInt64(s, style, NumberFormatInfo.GetInstance(provider), out result);
      }

      public new virtual sealed System.TypeCode GetTypeCode()
      {
        // 代码大小       3 (0x3)
        //.maxstack  8
        //IL_0000:  ldc.i4.s   12
        //IL_0002:  ret
          return TypeCode.UInt64;
      }

      private new virtual sealed bool System.IConvertible.ToBoolean(System.IFormatProvider provider)
      {        
        // 代码大小       8 (0x8)
        //.maxstack  8
        //IL_0000:  ldarg.0
        //IL_0001:  ldind.i8
        //IL_0002:  call       bool System.Convert::ToBoolean(uint64)
        //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.i8
        //IL_0002:  call       char System.Convert::ToChar(uint64)
        //IL_0007:  ret
          return System.Convert.ToChar(this);
      }

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

      private new virtual sealed byte System.IConvertible.ToByte(System.IFormatProvider provider)
      {        
        // 代码大小       8 (0x8)
        //.maxstack  8
        //IL_0000:  ldarg.0
        //IL_0001:  ldind.i8
        //IL_0002:  call       uint8 System.Convert::ToByte(uint64)
        //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.i8
        //IL_0002:  call       int16 System.Convert::ToInt16(uint64)
        //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.i8
        //IL_0002:  call       uint16 System.Convert::ToUInt16(uint64)
        //IL_0007:  ret
          return System.Convert.ToUInt16(this);
      }

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

      private new virtual sealed uint System.IConvertible.ToUInt32(System.IFormatProvider provider)
      {        
        // 代码大小       8 (0x8)
        //.maxstack  8
        //IL_0000:  ldarg.0
        //IL_0001:  ldind.i8
        //IL_0002:  call       uint32 System.Convert::ToUInt32(uint64)
        //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.i8
        //IL_0002:  call       int64 System.Convert::ToInt64(uint64)
        //IL_0007:  ret
          return System.Convert.ToInt64(this);
      }

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

      private new virtual sealed float System.IConvertible.ToSingle(System.IFormatProvider provider)
      {        
        // 代码大小       8 (0x8)
        //.maxstack  8
        //IL_0000:  ldarg.0
        //IL_0001:  ldind.i8
        //IL_0002:  call       float32 System.Convert::ToSingle(uint64)
        //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.i8
        //IL_0002:  call       float64 System.Convert::ToDouble(uint64)
        //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.i8
        //IL_0002:  call       valuetype System.Decimal System.Convert::ToDecimal(uint64)
        //IL_0007:  ret
          return System.Convert.ToDecimal(this);
      }

      private new virtual sealed System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider)
      {        
        // 代码大小       50 (0x32)
        //.maxstack  5
        //.locals init (object[] V_0)
        //IL_0000:  call       class System.Globalization.CultureInfo System.Globalization.CultureInfo::get_CurrentCulture()
        //IL_0005:  ldstr      "InvalidCast_FromTo"
        //IL_000a:  call       string System.Environment::GetResourceString(string)
        //IL_000f:  ldc.i4.2
        //IL_0010:  newarr     System.Object
        //IL_0015:  stloc.0
        //IL_0016:  ldloc.0
        //IL_0017:  ldc.i4.0
        //IL_0018:  ldstr      "UInt64"
        //IL_001d:  stelem.ref
        //IL_001e:  ldloc.0
        //IL_001f:  ldc.i4.1
        //IL_0020:  ldstr      "DateTime"
        //IL_0025:  stelem.ref
        //IL_0026:  ldloc.0
        //IL_0027:  call       string System.String::Format(class System.IFormatProvider,
        //                                                  string,
        //                                                  object[])
        //IL_002c:  newobj     instance void System.InvalidCastException::.ctor(string)
        //IL_0031:  throw
          object[] V_0;
          V_0=new object[2];
          V_0[0]="UInt64";
          V_0[1]="DateTime";
          throw new System.InvalidCastException(string.Format(CultureInfo.CurrentCulture, 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.i8
        //IL_0002:  box        System.UInt64
        //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((System.IConvertible)this, @type, provider);
      }

    }

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