This is the value type used to
store unmanaged pointers or handles
(e.g., IntPtr objects are used in the
System.IO.FileStream class to hold file handles).
Using this type allows your pointers to be platform-independent, as
IntPtr is automatically mapped to a 32-bit integer
on 32-bit operating systems and to a 64-bit integer on 64-bit
operating systems. The IntPtr type is
CLS-compliant and should be used in preference of the
UIntPtr.
public struct IntPtr : System.Runtime.Serialization.ISerializable {
// Public Constructors
public IntPtr(int value);
public IntPtr(long value);
public IntPtr(void *value);
// Public Static Fields
public static readonly IntPtr Zero;
// =0
// Public Static Properties
public static int Size{get; }
// Public Static Methods
public static bool operator !=(IntPtr value1, IntPtr value2);
public static bool operator = =(IntPtr value1, IntPtr value2);
public static explicit operator int(IntPtr value);
public static explicit operator long(IntPtr value);
public static explicit operator IntPtr(int value);
public static explicit operator IntPtr(long value);
public static explicit operator IntPtr(void *value);
public static explicit operator Void(IntPtr value);
// Public Instance Methods
public override bool Equals(object obj);
// overrides ValueType
public override int GetHashCode( );
// overrides ValueType
public int ToInt32( );
public long ToInt64( );
public void* ToPointer( );
public override string ToString( );
// overrides ValueType
}