2010-08-20 8 views

답변

8

기본적으로 제네릭 컬렉션은 컴파일 할 때 유형 안전합니다. 컬렉션에 포함 할 개체 유형을 지정하면 형식 시스템에서 해당 개체를 넣을 수 있습니다. 또한 아이템을 꺼낼 때 아이템을 던질 필요가 없습니다.

예를 들어, 문자열 모음이 필요하다고 가정 해 보겠습니다. 가장 일반적으로 사용되는 불구하고 제네릭 컬렉션 (한 예에 불과 것을

List<string> list = new List<string>(); 
list.Add("hello"); 
list.Add(new Button()); // This won't compile 
... 
// No need for a cast; guaranteed to be type-safe... although it 
// will still throw an exception if the list is empty 
string firstEntry = list[0]; 

참고 : 캐스트를 방지

ArrayList list = new ArrayList(); 
list.Add("hello"); 
list.Add(new Button()); // Oops! That's not meant to be there... 
... 
string firstEntry = (string) list[0]; 

을하지만 List<string>는 잘못된 입력을 방지 할 수 있습니다 : 우리는이 같은 ArrayList을 사용할 수 있습니다 하나는 제네릭의 더 일반적인 기능 중 하나입니다.이 유형을 사용하면 처리 할 데이터 유형에 따라 유형이나 메소드를 매개 변수화 할 수 있습니다.

1

ArrayList 및 HashTable 유형은 .Net 1.0에 포함되었습니다. 그것들은 목록과 사전과 다소 비슷합니다.

제네릭이 2.0에서 도입되기 전에 .Net 1.0 또는 1.1로 작성된 코드와의 호환성을 유지하기 위해 존재하며 .Net 2.0 이상을 대상으로하는 경우 일반적으로 피해야합니다.