Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mencipta MemoryStream daripada String dalam C#?
Mencipta MemoryStream daripada Rentetan dalam C#
Ujian unit selalunya memerlukan simulasi aliran input daripada fail teks. Contoh ini menunjukkan kaedah yang mudah dan berkesan, GenerateStreamFromString
, untuk mencipta MemoryStream
daripada rentetan.
GenerateStreamFromString
Pelaksanaan
Fungsi berikut dengan cekap menukar rentetan menjadi MemoryStream
:
<code class="language-csharp">public static Stream GenerateStreamFromString(string s) { var stream = new MemoryStream(); var writer = new StreamWriter(stream); writer.Write(s); writer.Flush(); stream.Position = 0; return stream; }</code>
Contoh Penggunaan:
<code class="language-csharp">using (var stream = GenerateStreamFromString("a,b \n c,d")) { // Process the stream here }</code>
Mengendalikan Pelupusan StreamWriter
Pernyataan using
secara automatik melupuskan StreamWriter
, tetapi ini juga akan menutup MemoryStream
. Memandangkan kami perlu mengembalikan MemoryStream
, kami mengelak daripada melupuskan StreamWriter
secara eksplisit. Kaedah StreamWriter
Dispose
hanya menutup aliran asas, iaitu tingkah laku yang diingini dalam senario ini.
Pendekatan ini berfungsi merentas semua versi .NET, tidak seperti alternatif yang bergantung pada StreamWriter
beban berlebihan yang diperkenalkan dalam .NET 4.5 dan lebih baru. Lebihan beban ini membolehkan strim asas tetap terbuka selepas pelupusan, tetapi kaedah kami mengekalkan keserasian yang lebih luas.
Untuk butiran lanjut tentang mengurus pelupusan aliran, rujuk sumber membincangkan teknik untuk menutup StreamWriter
tanpa menutup aliran asas.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta MemoryStream daripada String dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!