2009-11-06 4 views

답변

2

이렇게하려면 IArithmetic과 같은 인터페이스가 필요합니다.

불행히도, 현재 작동하지 않습니다. 그러나 이것은 highly requested feature입니다.

보통 두 번째 일반 매개 변수로 작업해야하는 some workarounds이 있지만 대부분은 IEnumerator<T>과 작동하지 않습니다.

0

유형 매개 변수에 constraints을 정의 할 수 있습니다. 따라서 T가 인터페이스를 구현하도록 요구할 수 있습니다.

public static class Classy 
{ 
    public static void Extension<T>(this IEnumerable<T> Ninjas) 
     where T : IMathStuff 
    { 

    } 
} 

이렇게하려면 모든 T가 IMathStuff를 구현해야합니다. 이제 연산자를 IMathStuff 인터페이스에 맞출 수 없으면 인터페이스를 공백으로 두어 Marker Interface으로두고 연산자를 구현하는 클래스에만 적용하면됩니다.

이러한 종류의 사용자는 기본 제공 유형이 아닌 모든 맞춤 클래스를 사용한다고 가정합니다. 정확히 지원되지 않는 문제를 해결할 수있는 방법입니다.

0

깨끗한 방법이 없습니다. IEnumberable < int>, IEnumberable < float> ... 등을 구현해야합니다.

0

컴파일 타임에 없습니다. 내 생각에 반사를 사용해야 할 것 같아.

int와 long 같은 값 유형은 "T : struct"이지만 공통된 인터페이스 또는 기본 유형은 없습니다.

관련 문제