次の方法で共有


SafeHandle.IsInvalid プロパティ

定義

派生クラスでオーバーライドされると、ハンドル値が無効かどうかを示す値を取得します。

public:
 abstract property bool IsInvalid { bool get(); };
public abstract bool IsInvalid { get; }
member this.IsInvalid : bool
Public MustOverride ReadOnly Property IsInvalid As Boolean

プロパティ値

ハンドル値が無効な場合は true。それ以外の場合は false

次の例では、ファイルが正常に開かれたかどうかを確認します。 このコード例は、SafeHandle クラスのために提供されている大規模な例の一部です。

// Determine if file is opened successfully.
if (_handle.IsInvalid)
    throw new Win32Exception(Marshal.GetLastWin32Error(), fileName);

注釈

共通言語ランタイムがクリティカルファイナライズが IsInvalid 必要かどうかを判断できるように、派生クラスは プロパティを実装する必要があります。 派生クラスは、サポートされているハンドルの一般的な種類に適した実装を提供する必要があります (0 または -1 は無効です)。 これらのクラスは、特定のセーフ ハンドル型に対してさらに派生させることができます。

基になるハンドルを IsClosed 使用してオブジェクトが終了したかどうかを SafeHandle 報告する プロパティとは異なり、 プロパティは、 IsInvalid 指定されたハンドル値が常に無効と見なされるかどうかを計算します。 したがって、プロパティは常に IsInvalid 1 つのハンドル値に対して同じ値を返します。

適用対象