สารบัญ:
คำจำกัดความ - ประเภทไม่เปลี่ยนรูปหมายความว่าอย่างไร
ประเภทไม่เปลี่ยนรูปในบริบทของ C # เป็นประเภทของวัตถุที่มีข้อมูลไม่สามารถเปลี่ยนแปลงได้หลังจากการสร้าง ชนิดไม่เปลี่ยนรูปตั้งค่าคุณสมบัติหรือสถานะของวัตถุเป็นอ่านอย่างเดียวเนื่องจากไม่สามารถแก้ไขได้หลังจากที่ได้รับมอบหมายในระหว่างการเริ่มต้น
ประเภทที่ไม่เปลี่ยนรูปได้รับการออกแบบมาเพื่อการจัดการหน่วยความจำที่มีประสิทธิภาพและความเร็วที่ดีกว่า Immutability ให้โค้ดที่อ่านง่ายขึ้นโดยทำการเปลี่ยนแปลงการมองเห็นสถานะของโปรแกรมและแยกการดำเนินการที่เปลี่ยนสถานะจากสิ่งที่ไม่ทำ ประเภทที่ไม่เปลี่ยนรูปให้ความปลอดภัยสูงกว่าประเภทที่ไม่แน่นอน
ชนิดที่ไม่เปลี่ยนรูปจะใช้ในกรณีที่ข้อมูลยังคงอยู่หลังจากได้รับมอบหมายเพียงครั้งเดียว แต่ไม่มีข้อกำหนดใด ๆ สำหรับข้อมูลที่จะเปลี่ยนแปลงในอนาคต เนื่องจากวัตถุที่ไม่เปลี่ยนรูปไม่ได้เปลี่ยนสถานะของพวกเขาพวกเขาจะมีประโยชน์มากขึ้นในสถานการณ์แบบมัลติเธรดและมัลติโพรเซสเนื่องจากหลายเธรดอาจอ่านหรือเขียนวัตถุซึ่งอาจทำให้เกิดสภาพการแข่งรถและปัญหาการซิงโครไนซ์
Techopedia อธิบายประเภทที่ไม่เปลี่ยนรูป
วัตถุประเภทไม่เปลี่ยนรูปสามารถสร้างได้ด้วยการใช้คำหลัก "const" และ "readonly" ในขณะที่อนุญาตการแก้ไขฟิลด์ภายในตัวสร้างแบบอ่านอย่างเดียว const จะไม่ ตัวเลข, สตริงและ null สามารถใช้เป็นฟิลด์ const เท่านั้นซึ่งไม่เปลี่ยนรูปอย่างแท้จริง แบบอ่านอย่างเดียวไม่เปลี่ยนแปลงไม่ได้อย่างแท้จริงเพราะอนุญาตให้เขียนได้เพียงครั้งเดียว ดังนั้นจึงไม่ใช่ค่าคงที่เวลารวบรวมเช่นฟิลด์ const วัตถุที่เปลี่ยนไม่ได้อย่างแท้จริงไม่เคยเปลี่ยนสถานะภายในของพวกเขาเลยและปลอดภัยต่อเธรด
คลาส System.String เป็นชนิดการอ้างอิงที่ไม่เปลี่ยนรูปแบบที่มีให้ในไลบรารีคลาส. NET Framework คลาสนี้สร้างวัตถุสตริงใหม่ภายในสำหรับการดำเนินการจัดการสตริง เนื้อหาของวัตถุประเภทนี้จะไม่เปลี่ยนแปลงแม้ว่าไวยากรณ์จะทำให้ดูเหมือนว่าเนื้อหาสามารถเปลี่ยนแปลงได้ นอกจากนี้สตริงถูกใช้เป็นคีย์ตารางแฮชสำหรับการคำนวณค่าแฮชเพื่อหลีกเลี่ยงความเสี่ยงในการทำลายโครงสร้างข้อมูลแฮช
ข้อเสียเปรียบหลักของประเภทที่ไม่เปลี่ยนรูปคือพวกเขาต้องการทรัพยากรมากกว่าประเภทวัตถุอื่น ๆ
