ดูเหมือนว่าพารามิเตอร์ในเมธอดจะผ่านการคัดลอกเสมอคำถามคือสำเนาของอะไร การคัดลอกทำโดยตัวสร้างการคัดลอกสำหรับวัตถุและเนื่องจากตัวแปรทั้งหมดเป็น Object ใน C # ฉันเชื่อว่านี่เป็นกรณีสำหรับพวกเขาทั้งหมด ตัวแปร (วัตถุ) เป็นเหมือนคนที่อาศัยอยู่ในที่อยู่บางแห่ง เราอาจเปลี่ยนผู้คนที่อาศัยอยู่ตามที่อยู่เหล่านั้นหรือเราสามารถสร้างการอ้างอิงเพิ่มเติมไปยังผู้คนที่อาศัยอยู่ตามที่อยู่เหล่านั้นในสมุดโทรศัพท์ (ทำสำเนาตื้น) ดังนั้นตัวระบุมากกว่าหนึ่งตัวสามารถอ้างถึงที่อยู่เดียวกัน ประเภทการอ้างอิงต้องการพื้นที่เพิ่มขึ้นดังนั้นไม่เหมือนกับประเภทค่าที่เชื่อมต่อโดยตรงด้วยลูกศรไปยังตัวระบุในสแต็กพวกเขามีค่าสำหรับที่อยู่อื่นในฮีป (พื้นที่ขนาดใหญ่กว่าสำหรับอาศัย) พื้นที่นี้ต้องถูกพรากไปจากกอง
ชนิดของค่า: ตัวบ่งชี้ (มีค่า = ที่อยู่ของค่าสแต็ก) ----> ค่าของชนิดค่า
ประเภทการอ้างอิง: ตัวระบุ (มีค่า = ที่อยู่ของมูลค่าสแต็ก) ----> (มีค่า = ที่อยู่ของมูลค่าฮีป) ----> ค่าฮีป (ส่วนใหญ่มักจะมีที่อยู่กับค่าอื่น ๆ ) ลองจินตนาการถึงลูกศร เส้นทางไปยัง Array [0], Array [1], Array [2]
วิธีเดียวในการเปลี่ยนค่าคือติดตามลูกศร หากลูกศรหนึ่งหลงทาง / เปลี่ยนค่าไม่สามารถเข้าถึงได้