낑깡의 게임 프로그래밍 도전기

C# static, deepcopy 본문

C#

C# static, deepcopy

낑깡겜플밍 2025. 7. 23. 12:27
반응형

static

스태틱은 인스턴트 선언 없이 바로 접근 가능

인스턴스로 만들어진 것 과는 차이가 있다

인스턴스는 범위내에서만 쓸수있고 스태틱은 수동으로 초기화해주기전까진 시스템이 끝날때까지 살아있다.

그래서 스태틱을 쓰면 다 기억을 하고있어야함

 

deepcapy

클래스와 큰 연관이 있음

주소만 복사하는 것을 쉘로우카피라고 한다.

internal class ActorBase
{
	public string Name { get; protected set; }
    
    public string Description { get; protected set; }
    
    public ActorBase(string name)
    {
    	Name = name;
    }
    
    public ActorBase DeepCopy()
    {
    	ActorBase actorBase = new ActorBase(name);
        actorBase.Description = this.Description;
        return actorBase;
    }
    
    public virtual void AddName(string value)
    {
    	this.Name = Name + value;
    }
}

예전부터 사용한 고전방식으로 카피

 

인터페이스 중 ICloneable이 있다

public object Clone()
{
     return this.MemberwiseClone();//복제
}

너무 복잡한 멤버변수를 들고있다면 구조가 복잡하다면 간혹 복사가 안되는 경우가 있다. 그래서 잘 복제 됬는지 확인 하는게 중요하다.

반응형