3

CollectionBase 클래스에서 파생 된 강력하게 형식화 된 컬렉션을 사용했으며 지금은 타입 안전 generic 컬렉션에서 상속하도록 변경하고 싶습니다. 일부는 List<T>에서 상속받을 것을 조언하고, 일부는 Collection<T>을 사용하도록 조언합니다. 내가하고 싶은 것은 다음과 같습니다.제네릭 컬렉션을 사용하여 사용자 정의 typesafe 컬렉션을 구현하는 방법은 무엇입니까?

1) 저는 커스텀 클래스가 있고 저는 그 커스텀 클래스의 인스턴스만을 담고있는 콜렉션을 만들고 있습니다.

2) 사용자 지정 컬렉션 클래스에 대해 원하는 몇 가지 속성과 메서드가 있습니다. 예를 들어 Id 속성이 있거나 IsBlahBlah() 메서드가 있어야합니다.

어떻게해야합니까? CollectionBase 클래스에서 파생되었을 때 요소에 액세스하기 위해 InnerList 속성을 사용했습니다. Collection<T>을 사용하려면 Items 속성을 사용해야합니까?

public class MyCustomCollection : Collection<MyCustomClass> 
{ 
    public int ExtraProperty { get; set; } 

    public bool IsFortyTwo(MyCustomClass) { } 
} 

올바른 방법 :

같은 일을하고 있습니까? Collection<T>의 메소드를 방해하지 않고 올바르게 작동합니까?

추가 질문 : Google에서 "Strongly Typed Collection"을 검색하면 항상 CollectionBase 클래스가 포함 된 결과가 표시됩니다. 강력하게 형식화 된 컬렉션형식 안전 컬렉션의 차이점은 무엇입니까?

답변

1

나는 그것의 필요가 이해가 안이

public class MyCustomCollection 
{ 
    private Collection<MyCustomClass> _collection = new Collection<MyCustomClass>(); 
    public int ExtraProperty { get; set; } 
    public bool IsFortyTwo(MyCustomClass) { } 
} 
+0

것은 같이 구현하는 생각 나는'개인 컬렉션 _collection'를 추가 할 때, 어떻게 'Collections.Add 말 않는다는 것입니다()'메소드가 내 새 컬렉션에 대해 알고 그 아이템을 추가합니까? 어떻게 든 내면의 컬렉션이라고 생각합니다. – hattenn