Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mencipta MemoryStream daripada String dalam C#?

Bagaimanakah Saya Boleh Mencipta MemoryStream daripada String dalam C#?

Barbara Streisand
Barbara Streisandasal
2025-01-22 14:56:11289semak imbas

How Can I Create a MemoryStream from a String in 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn