この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。
建築家
建築家
リスト
放送
茶屋
インテリジェントAI会話
.NETキャリア&テクニカルカレッジ
ちっちゃいなクズブログ
この版
利用者
Architect_Programmer_Code農業ネットワーク
»
建築家
›
プログラミング
›
.Net/C#
›
C# Deep Dive - デストラクターズ
眺める:
20506
|
答える:
1
[出典]
C# Deep Dive - デストラクターズ
[リンクをコピー]
クズども
掲載地 2018/08/17 13:54:43
|
|
|
デストラクタはC#ではほとんど使われないため、多くの人が忘れてしまいましたが、ほとんど役に立たず、研究も無意味です。
1。 デストラクターの特徴:
デストラクターはクラスにのみ存在し、構造には存在できません。 デストラクタはアクセス制御修飾子、静的修飾子、抽象修飾子、仮想修飾子など、いかなる修飾子も持てません。 デストラクタにはパラメータがないため、過負荷は起こりません。
2。 デストラクターを呼び出すタイミング:
デストラクターは、オブジェクトがゴミ収集機によってリサイクルされるときに呼ばれますが、ゴミ収集機には怠惰な特性があります。
変数がスコープとライフタイムを離れた後すぐにリサイクルするわけではなく、通常はメモリが不足していると判断した場合にのみ再利用します。 例えば:
ログインが見えます。
メソッドbtn_Click戻った後、deは終了されるはずですが、そのデストラクタは呼び出されず、ガベージコレクタがリサイクルしていないことを示しています。 フォームを閉じるとデストラクタが実行され、プログラム終了時にゴミ収集機がしぶしぶリサイクルを強いられることを示します(^-^)。
もちろん、GC.Collect()を呼び出してリサイクルを強制することもできます:
ログインが見えます。
btn1をクリックすると、de1と新しいDemo()が終了し、デストラクタが呼び出されます。
de2はまだ寿命を切れていないため、GC.Collectメソッドが呼ばれてもリサイクルされません。btn1_Clickが戻るとde2は寿命を切っていますが、ゴミ収集機の怠慢によりリサイクルされません。 btn2がGC.Collectメソッドを呼び出して初めてde2が回収され、そのデストラクタが呼び出されます。
デストラクタ呼び出しを防ぐ一つの方法は、IDisposableインターフェースを実装することです。これは一意のメソッド「Dispose()」を定義しています。
これにより、デストラクタが内部的に呼び出されるのを防ぎ、退屈な場合はGC.SuppressFinalize(^-^)を呼び出さずにこのインターフェースを実装できます。SuppressFinalize()はディスストラクタをブロックしないため意味がありません。
ログインが見えます。
これでde1のデストラクターは呼び出されません。
3。 デストラクターの本質:
デストラクタとは本質的に以下の形式をとる手法です:
ログインが見えます。
通常、デストラクタはシステム自身が呼び出せるものではなく、プログラマー自身が呼び出すものではないと考えますが、これは完全に正しくはなく、デストラクタは明示的に呼び出すこともできます。結局のところ、デストラクタは単なるメソッドに過ぎません。
ログインが見えます。
クラス内で管理されていないリソースが開かれない限り、デストラクターは必要ありません
先の:
C# Distinctは条件付きでオブジェクトの重複を除去します
次に:
例外メッセージ:「StrongTypingException: IsPrima...
関連記事
•
XPathを使ってXMLやHTMLドキュメントの内容を取得する
•
Dockerイメージ:ManifestダイジェストとIndexダイジェストの違い
•
ASP.NET コア(33)ファイル出力ダウンロード(中国語ファイル名)
•
SQL Serverサーバーはデータベースの整合ルールを修正します
•
個人ファイル(アーカイブ情報)の所在について問い合わせてください。
•
2つのONNXモデル最適化器
•
UUIDとは何ですか? およびバージョン間の違い
•
Gl-inetルーターがロケージを変更する
•
QRCODEについて QRコードのフォールトトレランスレベル
•
C#プログラミングでは、オーバーライドとニューキーワードを区別するために使われます
閲覧したセクション
その他の番組編成
ジャワ
簡単な言語/E4A
ごみ箱
安全な攻防
リソースの共有
HTML/CSS/JavaScript
Windows/Linux
ネットワーク技術
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。
Mail To:help@itsvse.com