Memahami Pelupusan Strim dalam .NET
Pengurusan aliran yang betul dalam .NET adalah penting untuk pengendalian sumber yang cekap. Artikel ini menjelaskan hubungan antara melupuskan StreamReader
dan aliran asas yang digunakannya.
Jawapan ringkasnya ialah: ya, melupuskan StreamReader
(dan begitu juga, StreamWriter
, BinaryReader
dan BinaryWriter
) secara automatik menutup strim asas. Tingkah laku kritikal ini memastikan pengeluaran sumber tidak terurus yang berkaitan.
Namun, bergantung semata-mata pada kutipan sampah untuk dilupuskan adalah berisiko. Amalan terbaik menentukan pelupusan eksplisit, sebaik-baiknya menggunakan pernyataan using
. Ini menjamin penutupan strim tepat pada masanya dan keluaran sumber, menghalang kemungkinan isu.
Apabila menggabungkan objek Stream
dengan StreamReader
(cth., untuk operasi ReadLine
atau GetLine
), pernyataan using
bersarang disyorkan:
<code class="language-csharp">using (Stream stream = ...) using (StreamReader reader = new StreamReader(stream, Encoding.Whatever)) { // Your code here }</code>
Walaupun kenyataan Stream
using
kelihatan berlebihan, ia merupakan pendekatan yang mantap. Ia mengekalkan tingkah laku pelupusan yang konsisten dan melindungi daripada potensi perubahan masa depan pada kelas StreamReader
. Pendekatan ini menjamin pembersihan sumber walaupun pengecualian berlaku semasa StreamReader
permulaan.
Atas ialah kandungan terperinci Adakah Melupuskan StreamReader dalam .NET Juga Menutup Strim Dasar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!