<Type Name="ValueType" FullName="System.ValueType" FullNameSP="System_ValueType" Maintainer="ecma">
  <TypeSignature Language="ILASM" Value=".class public abstract serializable ValueType extends System.Object" />
  <TypeSignature Language="C#" Value="public abstract class ValueType" />
  <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract serializable beforefieldinit ValueType extends System.Object" />
  <MemberOfLibrary>BCL</MemberOfLibrary>
  <AssemblyInfo>
    <AssemblyName>mscorlib</AssemblyName>
    <AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ]</AssemblyPublicKey>
    <AssemblyVersion>1.0.5000.0</AssemblyVersion>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
    <AssemblyVersion>4.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <ThreadingSafetyStatement>All public static members of this type are safe for multithreaded operations. No instance members are guaranteed to be thread safe.</ThreadingSafetyStatement>
  <Base>
    <BaseTypeName>System.Object</BaseTypeName>
  </Base>
  <Interfaces />
  <Attributes>
    <Attribute>
      <AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
    </Attribute>
  </Attributes>
  <Docs>
    <summary>
      <para>Provides support for value types. This class is the base class for all value types.</para>
    </summary>
    <remarks>
      <block subset="none" type="note">
        <para>Data types are separated into value types and reference
         types. Value types are either stack-allocated or allocated inline in a
         structure. Reference types are heap-allocated. Both reference and value types
         are derived from the ultimate base class <see cref="T:System.Object" />. In cases where a value type needs to
         act like an object, a wrapper that makes the value type look like a reference
         object is allocated on the heap, and the value type's value is copied into it.
         The wrapper is marked so that the system knows that it contains a value type.
         This process is known as boxing, and the reverse process is known as unboxing.
         Boxing and unboxing allow any type to be treated as an object.</para>
      </block>
    </remarks>
    <example>
      <para>In the following example, the number 3 is boxed as a <see cref="T:System.Int32" />, and <see cref="M:System.Int32.ToString" /> () is
   called.</para>
      <code lang="C#">using System;
class Boxer {
  public static void Main() {
   Console.WriteLine("Value is {0}.", 3.ToString());
  }
}
</code>
      <para>The output is</para>
      <c>
        <para>Value is 3.</para>
      </c>
    </example>
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="ILASM" Value="family specialname instance void .ctor()" />
      <MemberSignature Language="C#" Value="protected ValueType ();" />
      <MemberSignature Language="ILAsm" Value=".method familyhidebysig specialname rtspecialname instance void .ctor() cil managed" />
      <MemberType>Constructor</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue />
      <Parameters />
      <Docs>
        <summary>Constructs a new instance of the <see cref="T:System.ValueType" /> class.</summary>
        <remarks>To be added.</remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="Equals">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual bool Equals(object obj)" />
      <MemberSignature Language="C#" Value="public override bool Equals (object obj);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance bool Equals(object obj) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="obj" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="obj">The <see cref="T:System.Object" /> to compare the current instance to.</param>
        <summary>
          <para>Determines whether the current instance and a specified
   <see cref="T:System.Object" /> represent the same value.</para>
        </summary>
        <returns>
          <para>
            <see langword="true " />if <paramref name="obj" /> and the current
   instance are of the same type and represent the same value; otherwise,
<see langword="false" />.</para>
        </returns>
        <remarks>
          <para>
            <block subset="none" type="note">This method
      overrides <see cref="M:System.Object.Equals(System.Object)" />
      .</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="GetHashCode">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual int32 GetHashCode()" />
      <MemberSignature Language="C#" Value="public override int GetHashCode ();" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance int32 GetHashCode() cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Generates a hash code for the current instance.</para>
        </summary>
        <returns>
          <para>A <see cref="T:System.Int32" /> containing the hash code for the current instance.</para>
        </returns>
        <remarks>
          <para>The
      algorithm used to generate the hash code is unspecified.</para>
          <para>
            <block subset="none" type="note">This method
      overrides <see cref="M:System.Object.GetHashCode" />
      
      .</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="ToString">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual string ToString()" />
      <MemberSignature Language="C#" Value="public override string ToString ();" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance string ToString() cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Returns a <see cref="T:System.String" /> representation of the fully-qualified name of the type of the current instance.</para>
        </summary>
        <returns>
          <para>A <see cref="T:System.String" /> representation of the fully-qualified name of
   the type of the current instance.</para>
        </returns>
        <remarks>
          <block subset="none" type="note">
            <para> This method overrides <see cref="M:System.Object.ToString" />.</para>
            <para> This method returns the <see cref="P:System.Type.FullName" /> property. </para>
          </block>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
  </Members>
  <TypeExcluded>0</TypeExcluded>
</Type>
