2014-07-14 4 views
0

여러 알 수없는 유형으로 클래스를 만들려면이 방법이 가능합니까? 예 : 내가 가진 생각 :여러 유형의 일반 클래스

class MyClass <Type1, Type2, Type3, TResponse > 
{ 

public TResponse Run() 
{ 
    //operation on Type1, Type2, Type3 
} 


} 

내 질문이이 유형의 몇 가지 방법 목록을 통과 한 후 루프에서 사용할 수있는 경우입니까? 전화하는 법을 궁금해합니다.

+1

전달 * what * 유형 목록? 귀하의 질문은 현재 매우 불분명합니다. 메서드를 호출 할 때 예상되는 결과와 예상되는 결과를 보여줄 수 있다면 도움이 될 것입니다. –

+0

유형이 다른 여러 클래스가 있고 동일한 인터페이스를 구현하는 경우 수행하려는 작업을 수행 할 수 있습니까? – Mez

+0

. 넷 이상 넷. "unknown"유형에 대해 'dynamic' 키워드를 사용할 수도 있습니다. 그게 당신의 맥락에서 사용할 수 있습니까 (제네릭 대신)? –

답변

1

예 여러 유형의 제네릭 클래스를 정의 할 수 있습니다. 다음 코드가 컴파일됩니다. 그러나 이러한 유형의 작업을 수행하려면 유형에 constraints을 자주 정의해야합니다.

public class MyClass <Type1, Type2, Type3, TResponse> 
{ 
    public TResponse Run() 
    { 
     return default(TResponse); 
    } 
} 

그러나 명시 적으로 지정하는 일반 유형, AFAIK 클래스가 가지고 일반적인 유형의 목록을 지정하는 방법은 없습니다.

-1

모든 클래스가 인터페이스 또는 추상 클래스를 사용하여 동일한 기능을 제공하는 경우 가능합니다. 기본 유형을 얻은 후에는 여러 유형 매개 변수로 일반 클래스를 만들 수 있습니다. 제네릭 클래스 내에서는 노출 된 기능을 호출 할 수 있습니다.