2012-10-18 1 views
3

가능한 중복 :
Ambiguous call between two C# extension generic methods one where T:class and other where T:struct일반 매개 변수 유추 및 모호한 함수 호출 - 해결 방법이 있습니까?

나는이 두 가지 기능을했습니다 :

public static Degrees Convert<TInput>(this TInput input) 
    where TInput : NumericValue, IDegreesBased, new() 
{ 
    //Some stuff 
} 

public static SquarredMeters Convert<TInput>(this TInput input) 
    where TInput : NumericValue, ISquarredMetersBased, new() 
{ 
    // Some stuff 
} 

내가 new SquarredKilometers(10).Convert() 전화 통화 사이 모호 없다는 오류가 위의 두 가지 기능. SquarredKilometers 클래스는 ISquarredMetersBased 인터페이스를 구현합니다.

편집 : 정상적인 것처럼 보입니다. 이 정확한 문제에 대한 해결 방법은 무엇입니까? (인터페이스 구현)

+2

참조 http://blogs.msdn.com/b/ericlippert/archive/2009/12/10/constraints-are-not-part-of-the-signature.aspx –

+0

이것은 분명히 중복되었지만 그것을 찾는 데 어려움이있을 수 있습니다. 기본적으로 제약 조건으로 인해 과부하가 걸릴 수 없습니다. –

+0

확인. 내 게시물 및 질문을 편집하겠습니다 –

답변

0

기능 서명은 동일합니다. 작동하지 않습니다.
명시 적 인터페이스 구현을 시도하십시오.

+0

해결책을 제발 할 수 있습니까? :) –

0

같은 수의 매개 변수를 허용하기 때문에이 두 가지 방법을 사용할 수 없습니다. 코드를 컴파일하려면 메서드 중 하나의 시그니처를 변경하거나 Grumbler85에서 제안한대로 인터페이스를 구현해야합니다.

관련 문제