답변
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
위해 당신은 코드 제네릭은 우리가 늘 런타임에 컬렉션에서 개체의 예상치 못한 유형을 얻을 수 있도록 유형의 안전 모음집을 제작하기 위해 도입 된 이상에서 볼 수 있듯이.
컬렉션과는 별도로 메소드와 클래스에 제네릭을 적용 할 수도 있습니다.
C# in Depth을 읽으십시오. 거기에 제네릭에 대한 훌륭한 설명이 있습니다.
MSDN에는 introduction to generics이 있습니다.
제네릭을 사용하는 가장 간단한 예제 중 하나는 List<T>
입니다. 이것이 의미하는 것은, 당신이 당신의 프로그램, 무언가의 컬렉션 가지고 싶다면, 문자열을 말하고, 당신이 선택할 수있다이다 :
String[] anArrayOfStrings;
System.Collections.ArrayList anArrayListOfObject;
List<string> aListOfStrings;
촬영을 차례로 각; anArrayOfStrings
은 문자열 배열입니다. 즉, 추가하거나 제거 할 수 없습니다. 고정 된 크기의 항목이 있으면 괜찮습니다. anArrayListOfObject는 .net 1.0 "collection"이며, object
을 수락함에 따라 문자열뿐만 아니라 그 안에 아무것도 넣을 수 있다는 단점이 있습니다. 마지막 옵션 aListOfStrings
이 입니다
강력히에 뭔가를 넣어하려고하는 코드에 대해 불평 것이다 컴파일러는 문자열이 아닌 점에서을 입력했습니다. 코드를보다 강력하고 읽기 쉽도록 만듭니다 (넣고 빼는 것이 문자열인지 확인하기 위해 많은 양의 코드를 작성하지 않아도 됨) 유연합니다.
- 1. MD5 용도 또는 용도
- 2. COM의 GUID 용도
- 3. string.xml 및 arrays.xml의 용도는 무엇입니까?
- 4. HeadJS 및 jQuery 용도
- 5. OpenSocial 및 그 용도
- 6. Android Uri 클래스에 대해 모두 알아보기 - 용도 및 용도
- 7. 버전 관리를위한 크리에이티브 용도
- 8. 제네릭 클래스 및 제네릭 메서드
- 9. .NET의 용도 및 제한 사항은 무엇입니까?
- 10. Visual Studio - 솔루션 탐색기에서 '새로 고침'버튼의 용도
- 11. "기이하게 반복되는 템플릿 패턴"의 실제 용도
- 12. 링커가 생성하는 .map 파일의 용도는 무엇입니까?
- 13. 메이크 파일 및 그 용도
- 14. .DDF 파일의 용도는 무엇입니까?
- 15. HtmlAgilityPack MixedCodeDocument의 용도는 무엇입니까?
- 16. libGLES_CM.so의 용도는 무엇입니까?
- 17. .net에서 webclient 및 webclient의 용도는 무엇입니까
- 18. 루비 stdio consts 및 전역, 용도는 무엇입니까?
- 19. Joomla의 용도는 무엇입니까?
- 20. WebForms의 DynamicHyperLink와 HyperLink 간의 차이점 및 용도
- 21. ARIS BPM 도구 - 용도 및 기능
- 22. _fread_nolock, _fseek_nolock의 용도는 무엇입니까?
- 23. SO_REUSEADDR의 용도는 무엇입니까?
- 24. raisePropertyChanged 이벤트의 용도는 무엇입니까?
- 25. 인터페이스에서 속성의 용도는 무엇입니까?
- 26. 이 입력란의 용도는 무엇입니까?
- 27. 크로스 가입의 용도는 무엇입니까?
- 28. $$ jQuery에서이 용도는 무엇입니까?
- 29. 원자 방법의 용도는 무엇입니까?
- 30. Ackermann 함수의 용도는 무엇입니까?
지금까지 무엇을 알고 있습니까? 아직 읽은 바 없니? 여기 좀보십시오 : http://msdn.microsoft.com/en-us/library/512aeb7t(v=vs.80).aspx 그런 다음 더 구체적인 질문으로 돌아 오십시오. – Nick
[좋은 C# generics 튜토리얼은 무엇입니까?] (http://stackoverflow.com/questions/467936/what-is-a-good-c-generics-tutorial) (btw는 둘 다 * 관련 * 관련 게시물 - 다음 번에 중복 질문을 게시하기 전에보다 신중하게 확인하십시오.) –