SafeHandle.IsInvalid Property

Note: This property is new in the .NET Framework version 2.0.

When overridden in a derived class, gets a value indicating whether the handle value is invalid.

Namespace: System.Runtime.InteropServices
Assembly: mscorlib (in mscorlib.dll)

Public MustOverride ReadOnly Property IsInvalid As Boolean
Dim instance As SafeHandle
Dim value As Boolean

value = instance.IsInvalid

/** @property */
public abstract boolean get_IsInvalid ()

public abstract function get IsInvalid () : boolean

Property Value

true if the handle is valid; otherwise, false.

Derived classes must implement the IsInvalid property so that the common language runtime can determine whether critical finalization is required. Derived classes must provide an implementation that suits the general type of handle they support (0 or -1 is invalid). These classes can then be further derived for specific safe handle types.

Unlike the IsClosed property, which reports whether the SafeHandle object has finished using the underlying handle, the IsInvalid property calculates whether the given handle value is always considered invalid. Therefore, the IsInvalid property always returns the same value for any one handle value.

The following code example demonstrates how to implement the SafeHandle class.

public override bool IsInvalid

    get { return IsClosed || handle == IntPtr.Zero; }

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0