String Vs String Builder:
Hal pertama yang harus Anda ketahui bahwa Di mana perakitan kedua kelas ini hidup?
Begitu,
string hadir di System
namespace.
dan
StringBuilder hadir di System.Text
namespace.
Untuk deklarasi string :
Anda harus memasukkan System
namespace. sesuatu seperti ini.
Using System;
dan
Untuk deklarasi StringBuilder :
Anda harus memasukkan System.text
namespace. sesuatu seperti ini.
Using System.text;
Sekarang Hadir Pertanyaan yang sebenarnya.
Apa perbedaan antara string & StringBuilder ?
Perbedaan utama antara keduanya adalah:
string tidak dapat diubah.
dan
StringBuilder bisa berubah.
Jadi Sekarang mari kita bahas perbedaan antara tidak berubah dan bisa berubah
Dapat berubah:: berarti Dapat diubah.
Abadi:: berarti Tidak Berubah.
Sebagai contoh:
using System;
namespace StringVsStrigBuilder
{
class Program
{
static void Main(string[] args)
{
// String Example
string name = "Rehan";
name = name + "Shah";
name = name + "RS";
name = name + "---";
name = name + "I love to write programs.";
// Now when I run this program this output will be look like this.
// output : "Rehan Shah RS --- I love to write programs."
}
}
}
Jadi dalam hal ini kita akan mengubah objek yang sama sebanyak 5 kali.
Jadi pertanyaan yang jelas adalah itu! Apa yang sebenarnya terjadi di bawah tenda, ketika kita mengganti string yang sama 5 kali.
Ini Yang Terjadi ketika kita mengganti string yang sama 5 kali.
mari lihat gambar.
Penjelasan:
Ketika kami pertama kali menginisialisasi variabel ini "nama" menjadi "Rehan" yaitu string name = "Rehan"
variabel ini dibuat pada tumpukan "nama" dan menunjuk ke nilai "Rehan" itu. setelah baris ini dieksekusi: "name = name +" Shah ". variabel referensi tidak lagi menunjuk ke objek itu" Rehan "sekarang menunjuk ke" Shah "dan seterusnya.
Begitu string
juga makna abadi bahwa begitu kita membuat objek dalam memori kita tidak bisa mengubahnya.
Jadi ketika kita menggabungkan name
variabel objek sebelumnya tetap ada di memori dan objek string baru dibuat ...
Jadi dari gambar di atas kita memiliki lima objek, empat objek dibuang mereka tidak digunakan sama sekali. Mereka masih tinggal di memori dan mereka menghitung jumlah memori. "Pengumpul Sampah" bertanggung jawab untuk itu begitu bersih sumber daya dari memori.
Jadi dalam kasus string kapan saja ketika kita memanipulasi string berulang-ulang kita memiliki beberapa objek yang dibuat dan tinggal di sana di dalam memori.
Jadi ini adalah kisah string Variable.
Sekarang mari kita lihat ke arah objek StringBuilder.
Sebagai contoh:
using System;
using System.Text;
namespace StringVsStrigBuilder
{
class Program
{
static void Main(string[] args)
{
// StringBuilder Example
StringBuilder name = new StringBuilder();
name.Append("Rehan");
name.Append("Shah");
name.Append("RS");
name.Append("---");
name.Append("I love to write programs.");
// Now when I run this program this output will be look like this.
// output : "Rehan Shah Rs --- I love to write programs."
}
}
}
Jadi dalam hal ini kita akan mengubah objek yang sama sebanyak 5 kali.
Jadi pertanyaan yang jelas adalah itu! Apa yang sebenarnya terjadi di bawah tenda, ketika kita mengubah StringBuilder yang sama sebanyak 5 kali.
Ini Yang Terjadi ketika kita mengubah StringBuilder yang sama sebanyak 5 kali.
mari lihat gambar.
Penjelasan:
Dalam kasus objek StringBuilder. Anda tidak akan mendapatkan objek baru. Objek yang sama akan berubah dalam memori jadi bahkan jika Anda mengubah objek dan mengatakan 10.000 kali kita masih akan memiliki hanya satu objek stringBuilder.
Anda tidak memiliki banyak objek sampah atau objek stringBuilder non_referensi karena itu dapat diubah. Apakah bisa berubah artinya berubah seiring waktu?
Perbedaan:
- String hadir di System namespace di mana Stringbuilder hadir di System.Text namespace.
- string tidak dapat diubah di mana sebagai StringBuilder adalah mutabe.