Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

ความแตกต่างระหว่างคลาสและโครงสร้างใน C #


เพื่อแยกความแตกต่างระหว่างคลาสและโครงสร้าง เราต้องเข้าใจก่อนว่าทั้งโครงสร้างและคลาสดูเหมือนจะเท่ากันในบริบทของการถือครองและกำหนดข้อมูล ทั้งสองสิ่งนี้สามารถกำหนดและเก็บค่าดีฟอลต์บางอย่างไว้ในสมาชิกข้อมูล แต่ถ้าเราพิจารณานอกเหนือจากบริบทนี้ Class จะมีความยืดหยุ่นมากขึ้นพร้อมกับการทำงานเมื่อเทียบกับโครงสร้าง

ต่อไปนี้เป็นข้อแตกต่างที่สำคัญระหว่างคลาสและโครงสร้าง

ซีเนียร์ เลขที่ คีย์ คลาส โครงสร้าง
1 ประเภทข้อมูล ข้อมูลที่กำหนดไว้ในคลาสจะถูกเก็บไว้ในหน่วยความจำเพื่อเป็นข้อมูลอ้างอิงและมีที่อยู่เฉพาะเพื่อให้เข้าถึงได้ ดังนั้นจึงสามารถระบุได้ว่า Classes เป็นประเภทอ้างอิง ในทางกลับกัน ในกรณีของโครงสร้าง ค่าของสมาชิกข้อมูลจะถูกจัดเก็บโดยตรงทั้งในสแต็กหรือแบบอินไลน์ที่มีประเภท ดังนั้นโครงสร้างจะถือเป็นประเภทค่า
2 ที่เก็บข้อมูล ตามที่กล่าวไว้ข้างต้น สมาชิกข้อมูลจะถูกเก็บไว้เป็นข้อมูลอ้างอิงในกรณีที่ Class และประเภทการอ้างอิงได้รับการจัดสรรในหน่วยความจำฮีพ ในทางกลับกัน ค่าตรงของโครงสร้างจะถูกจัดเก็บ ดังนั้นประเภทค่าจะถูกจัดสรรในหน่วยความจำสแต็ก
3 ตัวสร้าง คลาสสามารถกำหนดได้ด้วยคอนสตรัคเตอร์และดีคอนสตรัคเตอร์เนื่องจากมีการใช้งานฟังก์ชันต่างๆ ในทางกลับกัน โครงสร้างไม่สามารถมี Constructor หรือ De-constructor ได้ เนื่องจากไม่มีการนำไปปฏิบัติดังกล่าว
4 ทันที เมื่อ Class นำมาใช้กับ Constructor ซึ่ง Class สามารถสร้างอินสแตนซ์ของอินสแตนซ์ด้วยคีย์เวิร์ดใหม่ได้ ในทางกลับกัน โครงสร้างสามารถสร้างอินสแตนซ์ได้โดยไม่ต้องใช้คีย์เวิร์ดใหม่
5 การสืบทอด Class สามารถสืบทอดคุณสมบัติจากคลาสหลักได้ เนื่องจากรองรับคุณสมบัติ Inheritance ในทางกลับกัน โครงสร้างไม่รองรับการสืบทอด
6 ตัวแก้ไขที่ได้รับการป้องกัน เราสามารถใช้ตัวแก้ไขที่ได้รับการป้องกันกับสมาชิกข้อมูลที่กำหนดไว้ในคลาส เนื่องจาก Class รองรับตัวดัดแปลงที่ได้รับการป้องกัน ในทางกลับกัน โครงสร้างไม่รองรับตัวแก้ไขที่ได้รับการป้องกัน