ความแตกต่างระหว่าง Value Types และ Reference Types ของ c#

อยู่ในประเภท: dotNET | ไม่มีคอมเม้นท์ »
โพสเมื่อ

Value and Reference Types

ก่อนอื่นต้องเข้าใจก่อนว่าอ็อบเจ็คที่สร้างจาก structs จะเป็น value types(รวมถึง Primitive types เช่น int, float, bool and char ด้วย) NFWจะจองหน่วยความจำไว้แหล่งเดียว(stack) ส่วนอ็อบเจ็คที่สร้างจาก classes จะเป็น reference types NFWจะจองหน่วยความจำไว้ 2 แหล่ง คือ heap สำหรับเก็บ อ็อบเจ็ค และ stack สำหรับเก็บตัวอ้างอิง

ตัวอย่างต่อไปนี้จะคือการประกาศอ็อบเจ็คโดยสมมติว่า Point คือ struct และ Form คือ class

  1. Point p1 = new  Point();         // Point เป็น *struct*
  2. Form f1 = new Form();           // Form เป็น  *class*

อ่านทั้งหมด »

แท็กส์ : , , ,