Unity&C#/C#

[기본] 참조(얕은 복사)

리네엔 2022. 9. 20. 02:26

Class

Class A{
    public B b;
}
Class B{
    public int c;
}

Class Main{

    public main(){
        B b = new B(); // B를 메모리에 할당 -> heap의 MB공간을 차지한다고 가정
        A a = new A(); // A를 메모리에 할당 -> heap의 MA공간을 차지한다고 가정
        a.b = b; // A의 b는 MB를 참조함

    }
}

예제

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;

namespace Rextester
{
    public class Program
    {
        public static void Main(string[] args)
        {
            Engine e = new Engine();
            e.power = 1;
            Coperate c = new Coperate();
            c.engine = e;
            Console.WriteLine(c.engine.power);
            e.power = 2;
            Console.WriteLine(c.engine.power);
        }
    }

    public class Engine{
        public int power;
    }
    public class Coperate{
        public Engine engine;
    }
}

output :
1
2

'Unity&C# > C#' 카테고리의 다른 글

[C#] Reflection  (0) 2024.10.14
[C#] Enum  (0) 2024.10.14
[C#] Abstract Class  (0) 2024.10.14
[C#] Orderby  (0) 2024.10.14
[C#문법] Dictionary  (0) 2022.08.31