42.5 불변 형식

    영어 단어로 immutable은 ‘변경 불가능한’이라는 뜻입니다. 프로그래밍에서 불변 형식(immutable type)은 개체가 만들어지고 값이 변경되지 않음을 의미합니다. 개체를 생성하고 변경되지 않아야 프로그래밍의 부작용을 줄일 수 있을 때 사용합니다.

    > public class Circle
    . {
    .     public int Radius { get; private set; } = 0;
    .     public Circle(int radius) => Radius = radius;
    .     public Circle MakeNew(int radius) => new Circle(radius);
    . }
    >
    > //① 생성자로 반지름이 10인 circle 개체 생성
    > Circle circle = new Circle(10);
    > $"Radius : {circle.Radius} - {circle.GetHashCode()}"
    "Radius : 10 - 62301924"
    >
    > //② 메서드로 반지름이 20인 circle 개체 생성
    > circle = circle.MakeNew(20);
    > $"Radius : {circle.Radius} - {circle.GetHashCode()}"
    "Radius : 20 - 37804102"

    처음에 생성자로 생성한 circle 개체는 반지름이 10으로 설정되어 더 이상 변경하지 않습니다. 이렇게 특정 개체가 가지는 속성을 생성한 후 변경하지 않도록 설정하면, 중간에 속성으로 값이 변경되어 개체가 잘못되는 것을 방지할 수 있습니다. 이 개체의 속성을 변경하려면 새로운 메서드로 새로운 개체를 만들어 사용합니다.

    C#에서는 클래스가 여러 형태를 가질 수 있습니다. 이 강의에서는 그중 여러 파일에 클래스를 나누어서 관리할 수 있는 부분 클래스와 정적인 멤버로만 구성할 수 있는 정적 클래스를 다루어 보았습니다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.