사전 하위 클래스 구현 .Net 세계에 익숙하지 않으며 상속 및 인터페이스가 정확히 작동하는지 파악하려고합니다. 모든 키를 대문자 문자열로 유지하는 Dictionary<string,string>
을 구현하려고합니다. F #에서 처음으로 순진한 찌르다는F #
type UpperDictionary1() =
inherit Dictionary<string, string>()
override this.Add (key: string, value : string) =
base.Add(key.ToUpper(), value)
사전 추가가 봉인되어 있기 때문에 작동하지 않습니다. 그러나 오버 라이드 (및 그림자 추가) 대신 작동하지 않습니다 :
type UpperDictionary2() =
inherit Dictionary<string, string>()
member this.Add (key: string, value : string) =
base.Add(key.ToUpper(), value)
사전 형식 클래스의 특수 양식을 구현하는 가장 빠르고 가장 효과적인 방법은 무엇입니까?
또한 Google의 Google ForwardingSet과 관련이 있습니다. 포워딩 세트는 이러한 유형의 기능을 추가하는 쉬운 방법일까요? 아니면 요점을 완전히 놓치고 있습니까?
제거와 같은 모든 메소드를 추가해야하는 것은 과도한 것처럼 보입니다. 하지만 그게 좋은 습관이라고 생각하니? – Tristan
사실,하지만 당신이 비공개 멤버에게 그 메소드를 전달하기 때문에 그렇게 나쁘지 않습니다. 또한 대문자가 아닌 경우 사용자 정의 예외가있는 키를 거부 할 수 있습니다. – emptyset