불변 클래스를 만드는 중입니다.
모든 속성을 읽기 전용으로 표시했습니다.
수업에 항목 목록이 있습니다.
속성이 읽기 전용 인 경우 목록을 수정할 수 있습니다.
목록의 IEnumerable을 노출하면 변경할 수 없습니다.
클래스를 불변으로 만들기 위해 따라야하는 기본 규칙이 무엇인지 알고 싶었습니다.
2
Immutability에 대한 Eric Lippert의 블로그 시리즈 , 특히 "kinds of immutability" 항목을 읽을 것을 강력히 권장합니다 . "목록의 IEnumerable을 노출하면 불변으로 만든다"는 귀하의 의견은 나에게 다소 이상하게 보입니다. 그게 무슨 뜻이야?
—
Jon Skeet
내가 의미하는 바는 목록 (객체에 다른 객체의 목록이있는 경우)에 대한 액세스를 허용하는 것이 아니라 사용자가 IEnumerable을 사용하여 구성원에 액세스 할 수 있도록 허용하는 것입니다. 특정 예에서와 같이 여기에 말하는 목록이지만 모든 데이터 구조가 될 수 있습니다.
—
Biswanath