Name
GCHandle
Synopsis
This class is used when you need to
pass a managed
object to unmanaged code. To use this class, pass an instance of a
.NET-managed type to the Alloc( )
method. The
single-argument form of Alloc( )
creates the
GCHandle
with
GCHandleType.Normal
, which ensures that the object
will not be freed by the garbage collector. (This means that some
kind of user code must also call the Free( )
method in order to release the object.) Managed code can use the
Target
property to access the underlying object.
public struct GCHandle { // Public Instance Properties public bool IsAllocated{get; } public object Target{set; get; } // Public Static Methods public static GCHandle Alloc(objectvalue
); public static GCHandle Alloc(objectvalue
, GCHandleTypetype
); public static explicit operator GCHandle(IntPtrvalue
); public static explicit operator IntPtr(GCHandlevalue
); // Public Instance Methods public IntPtr AddrOfPinnedObject( ); public void Free( ); }
Hierarchy
System.Object
→
System.ValueType
→
GCHandle
Get C# in a Nutshell, Second Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.