1
일반 메서드 (아래 코드 참조)가 있고 T가 특정 인터페이스 인 경우 일부 동작을 수행하려고합니다.
분명히 나는 단지 typeof(T).IsAssignableFrom(IFoo)
을 할 수는 있지만 반사가 비교적 느리기 때문에 가능하면 피하고 싶습니다.인터페이스의 generic 형식 매개 변수 테스트
이제 모호한 메서드 오류가 발생하기 때문에 제약 조건이있는 다른 메서드를 사용할 수 없다는 것을 알았습니다.
내가 원하는 것을 할 수있는 방법이 있습니까?
이 작업을 수행하려면 일부 아키텍처 문제가 있습니까? result
-
public T Load<T>(string name)
{
T result = LoadFromName<T>(name);
if(T is IFoo) // Obviously doesn't work as T is a type, not a variable
(result as IFoo).FooMethod();
return result;
}
나는 얼마나 어리 석 었는지 믿을 수 없습니다! –