次の方法で共有


BaseForm.Dispose(Boolean) メソッド

定義

BaseForm によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。

protected:
 override void Dispose(bool disposing);
protected override void Dispose (bool disposing);
override this.Dispose : bool -> unit
Protected Overrides Sub Dispose (disposing As Boolean)

パラメーター

disposing
Boolean

マネージド リソースとアンマネージド リソースの両方を解放する場合は true。アンマネージド リソースだけを解放する場合は false

Dispose メソッドを実装する例を次に示します。

protected override void Dispose(bool disposing) {

    // NOTE: Dispose gets called multiple times. 
    // Check for a non-null ServiceProvider.
    if (disposing && (ServiceProvider != null)) {

        persistWindowVals();

        if (_managementFrame != null) {
            _managementFrame.Dispose();
            _managementFrame = null;
        }

        IServiceContainer serviceContainer = (IServiceContainer)
            GetService(typeof(IServiceContainer));
        Debug.Assert(serviceContainer != null);

        if (serviceContainer != null) {
            serviceContainer.RemoveService(typeof(IPropertyEditingService));
            serviceContainer.RemoveService(typeof(IManagementUIService));
        }

        if (_uiService != null) {
            ((IDisposable)_uiService).Dispose();
            _uiService = null;
        }
    }

    base.Dispose(disposing);
}

注釈

このメソッドをオーバーライドするクラスは、親 Dispose オーバーロードを呼び出す必要があります。

このメソッドは、パブリックな Dispose() メソッドと Finalize メソッドによって呼び出されます。 Dispose()パラメーターを に設定して、保護されたDispose(Boolean)メソッドをdisposingtrue呼び出します。 Finalize を に Dispose 設定して disposingfalse呼び出します。

disposing パラメーターが true の場合、このメソッドは、この BaseForm が参照しているすべてのマネージド オブジェクトによって保持されているリソースをすべて解放します。 このメソッドは、参照される各オブジェクトの Dispose() メソッドを呼び出します。

注意 (継承者)

Dispose は、他のオブジェクトから複数回呼び出すことができます。 Dispose(Boolean) をオーバーライドする場合は、以前に Dispose を呼び出したときに破棄されたオブジェクトを参照しないように注意してください。 実装 Dispose(Boolean)方法の詳細については、「 Dispose メソッドの実装」を参照してください。

Finalize()の詳細Disposeについては、「アンマネージ リソースのクリーンアップ」および「Finalize メソッドのオーバーライド」を参照してください。

適用対象