Daftar Isi:
Definisi - Apa yang dimaksud dengan Immutable Type?
Tipe yang tidak dapat diubah, dalam konteks C #, adalah tipe objek yang datanya tidak dapat diubah setelah pembuatannya. Jenis yang tidak dapat diubah menetapkan properti atau keadaan objek sebagai hanya baca karena tidak dapat dimodifikasi setelah ditugaskan selama inisialisasi.
Jenis yang tidak dapat diubah dirancang untuk manajemen memori yang efisien dan kecepatan yang lebih baik, yang membuatnya cocok untuk objek dengan persyaratan sinkronisasi. Immutabilitas memberikan pembacaan kode yang lebih baik dengan membuat perubahan visibilitas status program dan mengisolasi operasi yang mengubah status dari yang tidak. Tipe yang tidak berubah memberikan keamanan yang lebih tinggi daripada tipe yang bisa berubah.
Jenis yang tidak dapat diubah digunakan di mana data akan bertahan setelah ditugaskan satu kali, tetapi tanpa persyaratan apa pun untuk data yang akan diubah di masa mendatang. Karena objek tidak berubah tidak mengubah keadaannya, mereka lebih berguna dalam skenario multithread dan multiproses, karena beberapa utas dapat membaca atau menulis objek, yang dapat menyebabkan kondisi balap dan masalah sinkronisasi.
Techopedia menjelaskan Tipe Abadi
Objek dengan tipe yang tidak dapat diubah dapat dibuat dengan menggunakan kata kunci "const" dan "readonly". Sementara readonly memungkinkan modifikasi bidang dalam konstruktor, const tidak. Bilangan, string, dan null hanya dapat digunakan sebagai bidang const, yang benar-benar tidak dapat diubah. Baca saja tidak benar-benar abadi karena hanya memungkinkan menulis sekali. Dengan demikian, ini bukan konstanta waktu kompilasi seperti bidang const. Objek yang benar-benar abadi tidak pernah mengubah keadaan internal mereka sama sekali dan karenanya secara inheren aman.
Kelas System.String adalah tipe referensi abadi yang disediakan di perpustakaan kelas .NET framework. Kelas ini membuat objek string baru secara internal untuk setiap tindakan manipulasi string. Isi objek jenis ini tidak berubah, meskipun sintaksnya membuatnya tampak seolah konten dapat diubah. Selain itu, string digunakan sebagai kunci tabel hash untuk perhitungan nilai hash untuk menghindari risiko merusak struktur data hash.
Kelemahan utama dari tipe yang tidak dapat diubah adalah mereka membutuhkan lebih banyak sumber daya daripada tipe objek lainnya.