C# เกี่ยวกับเรื่องตัวแปร reference type กับตัวแปร value type ครับ

กระทู้คำถาม
ก่อนหน้านั้น ผมสร้าง คลาสขึ้นมาคลาสหนึ่ง
ชื่อว่า
public class Myclass
{
   public People Name ;
   private Routine WhatDo;
    public bool now
    {
        get{ return WhatDo.GetBool ("IsDoing");}
        set{ WhatDo.SetBool("IsDoing",value);}
    }
   public void Update()
    {
       Name = Object.transform.name;
   }
}

จากนั้นสร้างคลาสเรียกใช้งาน
public class Manager
{
  public Myclass me ;
  public Myclass you;
  public List<Myclass > IsList =new List<Myclass > ();
  
  public void WhatAreYouDoning(string do)
{
   foreach(Myclass item in IsList)
  {
    if(item.Name==do)
   {
      me= item;
      you= item;
      me.now=true;
      you.now=true;
      you.now=false;
    }
  }
}


ข้างบนเป็นตัวอย่างโค้ดสมมุตินะครับ โค้ดจริงๆ มันเยอะกว่านั้น

สมมุติ
ตัวแปร IsList มีค่าอยู่ 5 ตัว (ในโค้ดข้างบนผมยังไม่ใส่ แต่คิดว่าผมใส่ไปแล้วกำหนดอะไรเรียบร้อยแล้วกัน)

โดย ออบเจ็ต 5 ตัวจะแสดงรูปกิจวัตรแตกต่างกันออกไป โดยเก็บรูปที่จะแสดงในตัวแปร WhatDo

แล้วถ้า  Myclass.now เป็นจริง จะแสดงรูปกิจวัตร เป็นเท็จ ปิดรูป

แต่ปัญหามันอยู่ตรงที่
me.now=true  มันจะแสดงรูปกิจวัตร
you.now=true  มันก็จะแสดงรูปกิจวัตร เหมือน me เพราะ อ้างอิงจากตัวแปรตัวเดียวกัน แต่มันไม่มีรูปซ้อนทับ
you.now=false มันก็ปิดรูป   แต่มันดันไม่มีรูปกิจวัตรของ me บนจอ


ผมไม่เข้าใจง่ะครับ ทำไม มันไม่สร้างรูปภาพซ้อนทับกัน ทั้งๆที่ ตัวแปร me และ you คนล่ะตัวกัน

ถ้าเป็น
me.now=true  
me.now=false  
มันจะ เปิดรูปและปิดรูป  โดยแสดงรูปใดรูปหนึ่ง

แต่ความเข้าใจของผมว่า
ถ้า สร้างตัวแปร 2 ตัว แต่เป็นตัวแปรชนิดเดียวกัน
มันน่าจะทำงานแยกกัน
me.now=true   
you.now=false  

ตัวแปร me ยังเปิดรูปอยู่ ก็แสดงรูปกิจวัตรต่อไป
แต่พอ you ปิดรูป  มันดันไป ปิดรูปกิจวัตรของ me ด้วยซะงั้น

มันเป็นเพราะอะไรครับ
แก้ไขข้อความเมื่อ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่