2011-02-25 5 views
-3

가능한 중복 : 그것은 무엇을
What is generics in C#?제네릭, 용도 및 용도는 무엇입니까?

을 사용할 수있는 제네릭의 사용하고?

+0

지금까지 무엇을 알고 있습니까? 아직 읽은 바 없니? 여기 좀보십시오 : http://msdn.microsoft.com/en-us/library/512aeb7t(v=vs.80).aspx 그런 다음 더 구체적인 질문으로 돌아 오십시오. – Nick

+1

[좋은 C# generics 튜토리얼은 무엇입니까?] (http://stackoverflow.com/questions/467936/what-is-a-good-c-generics-tutorial) (btw는 둘 다 * 관련 * 관련 게시물 - 다음 번에 중복 질문을 게시하기 전에보다 신중하게 확인하십시오.) –

답변

1

Generics는 List, Map 등과 같은 "유형 안전"컬렉션을 만드는 데 사용됩니다. 이는 하나의 컬렉션에 다른 데이터를 저장하는 것을 피하기 위해 컬렉션에 알려진/예상 유형 만 추가 할 수 있음을 의미합니다. 예컨대

//without generics 
ArrayList list = new ArrayList(); 
list.add(new Object()); 
list.add(new Interger()); 
list.add(new String()); 

//with generics 
ArrayList<String> list = new ArrayList<String>(); 
list.add(new Object()); //compile time error 
list.add(new Interger()); //compile time error 
list.add(new String()); //ok string its expected 

위해 당신은 코드 제네릭은 우리가 늘 런타임에 컬렉션에서 개체의 예상치 못한 유형을 얻을 수 있도록 유형의 안전 모음집을 제작하기 위해 도입 된 이상에서 볼 수 있듯이.

컬렉션과는 별도로 메소드와 클래스에 제네릭을 적용 할 수도 있습니다.

0

C# in Depth을 읽으십시오. 거기에 제네릭에 대한 훌륭한 설명이 있습니다.

1

MSDN에는 introduction to generics이 있습니다.

제네릭을 사용하는 가장 간단한 예제 중 하나는 List<T>입니다. 이것이 의미하는 것은, 당신이 당신의 프로그램, 무언가의 컬렉션 가지고 싶다면, 문자열을 말하고, 당신이 선택할 수있다이다 :

String[] anArrayOfStrings; 
System.Collections.ArrayList anArrayListOfObject; 
List<string> aListOfStrings; 

촬영을 차례로 각; anArrayOfStrings은 문자열 배열입니다. 즉, 추가하거나 제거 할 수 없습니다. 고정 된 크기의 항목이 있으면 괜찮습니다. anArrayListOfObject는 .net 1.0 "collection"이며, object을 수락함에 따라 문자열뿐만 아니라 그 안에 아무것도 넣을 수 있다는 단점이 있습니다. 마지막 옵션 aListOfStrings입니다

강력히에 뭔가를 넣어하려고하는 코드에 대해 불평 것이다 컴파일러는 문자열이 아닌 점에서을 입력했습니다. 코드를보다 강력하고 읽기 쉽도록 만듭니다 (넣고 빼는 것이 문자열인지 확인하기 위해 많은 양의 코드를 작성하지 않아도 됨) 유연합니다.

관련 문제