c# generic 예제

파생 클래스가 제네릭인 경우 형식 매개 변수(T)를 대신 제네릭 기본 클래스에 대한 형식을 지정할 필요가 없습니다. 일반 클래스는 각도 괄호 를 사용하여 정의할 수 있습니다. 예를 들어 다음은 제네릭 멤버 변수, 제네릭 메서드 및 속성이 있는 간단한 제네릭 클래스입니다. 위의 코드에서 볼 수 있듯이 MyGenericClass는 정의됩니다. MyGenericClass는 제네릭클래스이고 기본 형식은 나중에 정의될 것임을 나타내며, 지금은 T로 간주합니다. T 대신 문자 나 단어를 취할 수 있습니다. 제네릭 메서드가 제네릭 클래스 내에 있는 경우 형식 매개 변수 식별자에 주의해야 합니다. 해당 클래스에 T 형식이 있는 경우 메서드에 다른 형식(U, Y, R…)이 있어야 합니다. 그렇지 않으면 메서드의 T 형식은 클래스에서 T 형식을 숨깁니다. c#에서는 대부분 컬렉션이 있는 제네릭과 컬렉션에서 작동하는 메서드를 사용하여 컬렉션에 저장할 개체 유형을 지정합니다.

제네릭은 System.Collections.Generic이라는 새 네임스페이스를 통해 .NET Framework 2.0에 도입됩니다. 여기서 각도() 대괄호는 GenericClass가 제네릭이고 형식 매개변수(T)가 요청된 형식을 수락하는 데 사용됨을 나타냅니다. 형식 매개 변수 이름은 요구 사항에 따라 X 또는 U 등과 같을 수 있습니다. 이 제약 조건에 대 한 다른 변화가 있다, 그들은 우리가 작업 하는 상황에 따라 달라 집니다. 제네릭 클래스가 클래스에서만 작동하도록 제약을 받으면 값 형식을 제공하면 오류가 발생한다는 것을 아는 것이 중요합니다. 값 형식만 사용하려는 경우 MyGenricClass를 인스턴스화하는 동안 모든 형식을 사용할 수 있습니다. 예를 들어 다음 예제에서는 문자열 형식을 사용합니다. 경우에 따라 특정 형식만 일반 클래스로 호출할 수 있도록 하려고 합니다. 클래스 나 인터페이스로 작업하는 동안 종종 유용합니다. where 키워드: 특정 데이터 형식의 메서드에 액세스할 수 있도록 제한된 제네릭 클래스를 만들 수 있습니다. 제네릭 클래스와 메서드는 재사용성, 형식 안전성 및 효율성을 결합하여 비일반 클래스가 할 수 없는 방식으로 합니다.

제네릭은 컬렉션 및 해당 에서 작동하는 메서드와 함께 가장 자주 사용됩니다. .NET Framework 클래스 라이브러리의 버전 2.0은 여러 개의 새로운 제네릭 기반 컬렉션 클래스를 포함하는 새 네임스페이스 System.Collections.Generic을 제공합니다. .NET Framework 2.0을 대상으로 하는 모든 응용 프로그램은 나중에 ArrayList와 같은 이전 비제네릭 대/해당 클래스 대신 새 제네릭 컬렉션 클래스를 사용하는 것이 좋습니다. 자세한 내용은 .NET의 제네릭을 참조하십시오. c#에서 형식 매개 변수를 사용하여 메서드를 정의하면 제네릭 메서드라고 합니다. 다음은 angle() 대괄호를 사용하여 형식 매개변수를 사용하여 제네릭 메서드를 정의하는 예제입니다. c#에서 제네릭 대리자는 일반 대리자처럼 동일하지만 제네릭 대리자는 angle() 대괄호가 있는 제네릭 형식을 갖게 된다는 점만 차이입니다. 이 예제의 T는 작업하려는 형식의 자리 표시자 역할을 합니다. 이 제네릭 클래스를 인스턴스화하면 해당 형식을 제공해야 합니다. 간단한 예제를 살펴보겠습니다: 제네릭은 C# 언어의 버전 2.0및 공통 언어 런타임(CLR)에 추가되었습니다.

제네릭은 .NET Framework에 형식 매개 변수의 개념을 도입하여 클래스 또는 메서드가 클라이언트 코드에 의해 선언되고 인스턴스화될 때까지 하나 이상의 형식의 사양을 연기하는 클래스 및 메서드를 디자인할 수 있습니다. 예를 들어, 제네릭 형식 매개 변수 T를 사용 하 여 런타임 캐스트 또는 boxing 작업의 비용이나 위험을 발생 하지 않고 다른 클라이언트 코드에서 사용할 수 있는 단일 클래스를 작성할 수 있습니다. 그러나 런타임에 기본 클래스를 인스턴스화하는 데 필요한 형식 인수를 보낼 방법이 없기 때문에 기본 클래스에 대한 형식 매개 변수 대신 형식을 제공해야 합니다.