더북(TheBook)

어떤 대안도 썩 유쾌하지 않다. 모든 문제를 해결할 수 있는 적절한 대안이 있었다면 이렇게 여러 방법을 나열하지도 않았을 것이다. 현재로서는 IXmlSerializable을 구현하는 구조체를 온전한 읽기 전용 구조체로 만들 방법이 없다. IXmlSerializable 인터페이스 외에도 이와 유사한 구조를 가진 인터페이스가 얼마든지 있을 것이다. 이 경우에도 앞서 제시한 대안들을 활용할 수밖에 없다. 그저 IXmlSerializable이 가장 대표적이라고 생각했을 따름이다.

그나마 다행인 것은 대부분의 독자는 이런 문제에 직면할 가능성이 거의 없다는 점이다. 사용자 정의 구조체를 읽기 전용으로 만들 수만 있다면 가능한 한 그렇게 할 것을 추천한다. 코드를 공개하는 경우 읽기 전용으로의 변경은 돌이킬 수 없는 작업이라는 점을 명심하기 바란다. 향후에 readonly 한정자를 안전하게 제거하려면 전체 코드를 완전히 재컴파일하는 수밖에 없다. 다음으로 알아볼 기능은 언어의 일관성과 관련된 부분인데, 구조체의 인스턴스 메서드에서 사용하는 기능을 확장 메서드에서도 동일하게 사용하도록 지원하는 내용이다.

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