클래스가 참조타입으로 대입되는 데서 오는 혼동은 parameter에 새로운 클래스를 생성시켜서 대입 하는 것 보다
internal class Program
{
static void Main(string[] args)
{
MyClass instance = new MyClass { Id = 10 };
Test(instance);
System.Console.WriteLine(instance.Id); // 출력 결과: 20
}
static void Test(MyClass parameter)
{
parameter.Id = 20; // parameter 에 새로운 인스턴스 생성하지 않고 Id 값 변경
}
}
위 처럼 parameter의 변수를 변경 하는 경우 인 듯 합니다. parameter에 새로운 인스턴스를 대입하지 않으면
참조대입으로 parameter의 값을 변경 할 때 instance의 Id 값이 변경 되어버립니다.
parameter에 새로운 인스턴스를 대입 했을 때에 비로소 영향을 미치지 못하는 것 같습니다.
(변수로 대입되는 parameter는 별칭의 개념으로 생각하는 것이 좋을 듯 합니다.)
원래글에는 댓글 저장이 안되서 질문 게시판에 남깁니다.
[최초 등록일: ]
[최종 수정일: 8/10/2023]