Isu:
tingkah laku yang tidak dijangka apabila menggunakan kaedah C#'s untuk mengubah suai rentetan. Penggantian nampaknya tidak berkuatkuasa. String.Replace()
Contoh:
<code class="language-csharp">string filePath = "C:\Users\Desktop\Project\bin\Debug"; filePath.Replace("\bin\Debug", "\Resources\People"); </code>
Hasil:
kekal tidak berubah selepas memanggil filePath
. Replace()
Penjelasan:
rentetan dalam C# tidak berubah. Kaedah seperti Jangan mengubah suai rentetan asal; Mereka Replace()
kembali rentetan baru dengan perubahan. Rentetan asal masih tidak disentuh.
Penyelesaian:
untuk mengemas kini rentetan dengan betul, menetapkan semula hasil kaedah: Replace()
<code class="language-csharp">filePath = filePath.Replace("\bin\Debug", "\Resources\People");</code>
untuk menunjuk pada rentetan baru ini. filePath
Memahami Immutability:
ingat, rentetan C# tidak berubah. Mana -mana operasi yang nampaknya menukar rentetan sebenarnya membuat objek rentetan baru. Ini penting untuk pengurusan memori dan pertimbangan prestasi.Atas ialah kandungan terperinci Mengapa kaedah C# String.Replace () saya tidak berfungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!