컬렉션을 사용하여 개체 관리
업데이트: 2007년 11월
컬렉션을 사용하면 이상적인 방법으로 다양한 개체를 관리할 수 있습니다. 컬렉션에 개체를 추가 및 제거하고, 인덱스나 키를 기준으로 개체를 검색하고, For Each...Next 문(Visual Basic)을 사용하여 컬렉션의 항목을 반복할 수 있습니다.
안전하지 않은 형식의 컬렉션
그러나 컬렉션이 상당히 유연하므로 클래스의 견고함이 손상될 수 있습니다. 예를 들어, Visual Basic에서 제공하는 컬렉션은 해당 요소를 모두 Object 형식으로 저장하므로 모든 데이터 형식의 항목을 추가할 수 있습니다. 부적절한 데이터 형식을 추가하는 것에 대한 보호 수단이 없으므로 요소에 액세스할 때 해당 요소를 Object에서 원하는 데이터 형식으로 변환해야 합니다.
특수 컬렉션
.NET Framework는 Visual Basic 컬렉션에 몇 가지 대안을 제공합니다. System.Collections 네임스페이스에는 큐나 정렬된 목록과 같은 특정 기능을 가진 컬렉션 클래스가 포함되고 System.Collections.Specialized 네임스페이스에는 HybridDictionary와 같은 특수한 속성의 컬렉션 클래스가 포함되어 있습니다.
안전한 형식의 컬렉션
형식이 Object인 요소의 단점을 피하기 위해 System.Collections.Generic 네임스페이스의 제네릭 컬렉션을 사용할 수 있습니다. 이러한 컬렉션을 사용하면 형식 안전성이 제공되고 컬렉션의 요소를 하나의 특정 데이터 형식으로만 제한할 수 있습니다.
컬렉션 사용 방법
컬렉션을 사용하여 개체 관리를 구현하기 위해 일반적인 세 가지 방법을 사용할 수 있습니다. widget 개체를 구성하여 클라이언트 구성 요소에 제공하는 widgetRepository 클래스를 정의하는 응용 프로그램을 생각해 봅니다. 컬렉션으로 widgetRepository를 구현하려면 다음 방법 중 하나를 사용할 수 있습니다.
**컬렉션 클래스를 사용합니다.**widgetRepository 클래스에서 widgetsColl 변수를 Visual Basic 컬렉션 클래스의 인스턴스로 선언하거나, System.Collections, System.Collections.Generic 또는 System.Collections.Specialized 네임스페이스의 클래스 중 하나에 대한 인스턴스로 선언합니다. 해당 변수를 공용으로 만든 다음 New(Visual Basic) 키워드를 사용하여 컬렉션의 인스턴스를 만듭니다. 자세한 내용은 방법: 클래스에서 컬렉션 정의를 참조하십시오.
컬렉션 기본 클래스를 상속합니다.CollectionBase 클래스에서 상속하여 고유한 widgetsColl 클래스를 구현합니다. widgetRepository 클래스에서 widgetsColl 클래스의 인스턴스와 해당 인스턴스를 반환하는 속성을 정의합니다. 자세한 내용은 방법: 클래스에서 컬렉션 정의를 참조하십시오.
컬렉션을 직접 작성합니다. 적절한 클래스와 프로시저를 작성하여 widgetRepository 클래스에 컬렉션 기능을 구현합니다. 이 방법은 클래스에 컬렉션 기능을 구현해야 하지만 기존 컬렉션 클래스에서 상속할 수 없는 경우에 가장 유용합니다. 예를 들어, 드물긴 하지만 클래스가 컬렉션 클래스가 아닌 클래스로부터 상속해야 하는 경우가 발생할 수 있습니다. 두 개 이상의 클래스에서는 상속할 수 없으므로 컬렉션 멤버를 정의하고 구현해야 합니다.