SafeHandleZeroOrMinusOneIsInvalid SafeHandleZeroOrMinusOneIsInvalid SafeHandleZeroOrMinusOneIsInvalid SafeHandleZeroOrMinusOneIsInvalid Class


为 Win32 安全句柄实现提供基类,在这些实现中,值为 0 或 -1 都表示无效句柄。Provides a base class for Win32 safe handle implementations in which the value of either 0 or -1 indicates an invalid handle.

public ref class SafeHandleZeroOrMinusOneIsInvalid abstract : System::Runtime::InteropServices::SafeHandle
public abstract class SafeHandleZeroOrMinusOneIsInvalid : System.Runtime.InteropServices.SafeHandle
type SafeHandleZeroOrMinusOneIsInvalid = class
    inherit SafeHandle
Public MustInherit Class SafeHandleZeroOrMinusOneIsInvalid
Inherits SafeHandle


此类从 System.Runtime.InteropServices.SafeHandle 类派生。This class derives from the System.Runtime.InteropServices.SafeHandle class. 它描述了无效句柄的格式。It describes the format of an invalid handle. 例如, 某些句柄使用-1 作为无效的句柄值, 而其他句柄则使用0。For example, some handles use -1 as an invalid handle value, while others use 0. 此类的进一步派生 (如文件或注册表句柄) 可以进一步专用化。Further derivations of this class (for example, file or registry handles) can specialize this further. 有关派生自SafeHandleZeroOrMinusOneIsInvalid的类的示例, 请参阅类。SafeFileHandleSee the SafeFileHandle class for an example of a class that derives from SafeHandleZeroOrMinusOneIsInvalid.


此类型实现 IDisposable 接口。This type implements the IDisposable interface. 在使用完类型后,您应直接或间接释放类型。When you have finished using the type, you should dispose of it either directly or indirectly. 若要直接释放类型,请在 try/catch 块中调用其 Dispose 方法。To dispose of the type directly, call its Dispose method in a try/catch block. 若要间接释放类型,请使用 using(在 C# 中)或 Using(在 Visual Basic 中)等语言构造。To dispose of it indirectly, use a language construct such as using (in C#) or Using (in Visual Basic). 有关详细信息,请参阅 IDisposable 接口主题中的“使用实现 IDisposable 的对象”一节。For more information, see the "Using an Object that Implements IDisposable" section in the IDisposable interface topic.

只要需要安全包装没有现有托管包装的非托管资源, 请使用类。SafeHandleZeroOrMinusOneIsInvalidUse the SafeHandleZeroOrMinusOneIsInvalid class whenever you need to safely wrap an unmanaged resource that does not have an existing managed wrapper.


SafeHandleZeroOrMinusOneIsInvalid(Boolean) SafeHandleZeroOrMinusOneIsInvalid(Boolean) SafeHandleZeroOrMinusOneIsInvalid(Boolean) SafeHandleZeroOrMinusOneIsInvalid(Boolean)

初始化 SafeHandleZeroOrMinusOneIsInvalid 类的新实例,并指定是否要可靠地释放句柄。Initializes a new instance of the SafeHandleZeroOrMinusOneIsInvalid class, specifying whether the handle is to be reliably released.


IsClosed IsClosed IsClosed IsClosed

获取一个值,该值指示句柄是否已关闭。Gets a value indicating whether the handle is closed.

(Inherited from SafeHandle)
IsInvalid IsInvalid IsInvalid IsInvalid

获取一个值,该值指示句柄是否无效。Gets a value that indicates whether the handle is invalid.


Close() Close() Close() Close()

标记句柄,以便释放资源。Marks the handle for releasing and freeing resources.

(Inherited from SafeHandle)
DangerousAddRef(Boolean) DangerousAddRef(Boolean) DangerousAddRef(Boolean) DangerousAddRef(Boolean)

手动递增 SafeHandle 实例中的引用计数器。Manually increments the reference counter on SafeHandle instances.

(Inherited from SafeHandle)
DangerousGetHandle() DangerousGetHandle() DangerousGetHandle() DangerousGetHandle()

返回 handle 字段的值。Returns the value of the handle field.

(Inherited from SafeHandle)
DangerousRelease() DangerousRelease() DangerousRelease() DangerousRelease()

手动递减 SafeHandle 实例中的引用计数器。Manually decrements the reference counter on a SafeHandle instance.

(Inherited from SafeHandle)
Dispose() Dispose() Dispose() Dispose()

释放 SafeHandle 类使用的所有资源。Releases all resources used by the SafeHandle class.

(Inherited from SafeHandle)
Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

释放 SafeHandle 类所使用的非托管资源,并指定是否执行常规释放 (Dispose) 操作。Releases the unmanaged resources used by the SafeHandle class specifying whether to perform a normal dispose operation.

(Inherited from SafeHandle)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

确定指定的对象是否等于当前对象。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

作为默认哈希函数。Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

获取当前实例的 TypeGets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

创建当前 Object 的浅表副本。Creates a shallow copy of the current Object.

(Inherited from Object)
ReleaseHandle() ReleaseHandle() ReleaseHandle() ReleaseHandle()

如果在派生类中重写,执行释放句柄所需的代码。When overridden in a derived class, executes the code required to free the handle.

(Inherited from SafeHandle)
SetHandle(IntPtr) SetHandle(IntPtr) SetHandle(IntPtr) SetHandle(IntPtr)

将句柄设置为预先存在的指定句柄。Sets the handle to the specified pre-existing handle.

(Inherited from SafeHandle)
SetHandleAsInvalid() SetHandleAsInvalid() SetHandleAsInvalid() SetHandleAsInvalid()

将句柄标记为不再使用。Marks a handle as no longer used.

(Inherited from SafeHandle)
ToString() ToString() ToString() ToString()

返回表示当前对象的字符串。Returns a string that represents the current object.

(Inherited from Object)


handle handle handle handle

指定要包装的句柄。Specifies the handle to be wrapped.

(Inherited from SafeHandle)


完全信任继承者。for full trust for inheritors. 部分受信任的代码不能继承此成员。This member cannot be inherited by partially trusted code.

需要对直接调用方的完全信任。requires full trust for the immediate caller. 部分受信任的或透明的代码不能使用此成员。This member cannot be used by partially trusted or transparent code.