【解決方法】廃棄と廃棄の違いは何ですか?


廃棄と処分の違いは何ですか?

クラスオブジェクト x を構築しました。これには void Dispose とイベント Dispose があります。
そこで、クラス用に destroy を作成し、x で Dispose を呼び出しました。

しかし、クラスに Disused を作成して x.Disused を呼び出すにはどうすればよいですか

助けていただきありがとうございます。

解決策 1

Dispose はメソッドですが、Disused はイベントです。 Dispose メソッドが呼び出されて完了すると、Dispeded イベントが発生します。

メソッドを呼び出すことはできますが、イベントを処理する必要があります。

例:

C#
obj.Dispose();

C#
obj.Disposed += new EventHandler(OnDisposed);

private void OnDisposed(object sender, EventArgs e)
{
   // Do your stuffs
}

役に立った場合は回答としてマークしてください

解決策 2

初めに、 DisposeIDisposable.Dispose() コンストラクトを使用するため、基本的に C# に埋め込まれています。

C#
class MyDisposableClass: IDisposable {
    void IDisposable.Dispose() {/* should be implemented */}
    //...
}

using (disposableObject obj = new MyDisposableClass()) {
    //use disposableObject...
} //disposableObject.Dispose automatically called

Dispose は例外でも呼び出されます (これは try- の場合と厳密に同等の糖衣構文です)finally ブロック)。

に関しては Disposed — さまざまなものがこの名前を持っています (ブール型プロパティとイベントを見ました)。 おそらく、注目のメンバーはそのイベントです System.ComponentModel.IComponent.Disposed。 System.ComponentModel.Component の実装 IDisposable.DisposeIComponent Dispose が呼び出されたときのイベントの様子。

Disused を直接呼び出すことはできません (または、実装すれば呼び出すことができます) System.ComponentModel.IComponent.Disposed 直接、ただし継承することで Component)。

1 つ以上のイベント ハンドラーを追加できます。 Disposed イベント。
ただし、他のサンプルに示されている構文は廃止されました。
匿名を使用する方がはるかに優れています。

myClass.Disposed += (sender, eventArgs) => {
    //whatever you want here
};

このハンドラー内から 1 つ以上のメソッドを呼び出す場合、まったく同じパラメーター リストを渡す必要がないため、この方が優れています。 (object sender, System.EventArgs eventArgs) — 多くの場合、1 つまたは両方の引数が必要になるため、コードが簡素化されます。 このブロック内にハンドラー全体を記述することもできます。 また、型推論を使用するため、型を入力する必要はありません。

.NET 2.0 では古い構文を使用できます。型推論はありませんが、匿名のままです。

C#
myClass.Disposed += delegate(
    object sender,
    System.EventArgs eventArgs) {
    //whatever you want here
}

少なくとも、正確なパラメータリストを持つハンドラを使用する必要はありません。

解決策 3

その違いに困っています。 どなたか賢い方、この 2 つの言葉の違いを実際に説明していただけませんか。

コメント

タイトルとURLをコピーしました