일부 제네릭에 어려움을 겪고 있습니다. 다음은 내 설정이다 :유형 제한 일반 사항
interface I<T> { }
[...]
void Add<T>(T obj) where T : I<??> { }
가 어떻게이 Add
방법 T
이 I
를 구현하도록 할 수 있습니다?
일부 제네릭에 어려움을 겪고 있습니다. 다음은 내 설정이다 :유형 제한 일반 사항
interface I<T> { }
[...]
void Add<T>(T obj) where T : I<??> { }
가 어떻게이 Add
방법 T
이 I
를 구현하도록 할 수 있습니다?
다음 서명은 Add
어떤 형태 파라미터를 가지는 I<>
을 구현하는 T
걸릴 수 있습니다.
void Add<T,S>(T obj) where T : I<S> {
}
이 방법 서명을 사용하는 단점은 그 형식 유추가 걷어차하지 않습니다 그리고 당신은 명백히 바보 보이는 모든 유형의 매개 변수를 지정해야합니다 :
blah.Add<I<int>, int>(iInstance);
훨씬 간단을 접근 방식은 서명 아래 사용하는 것입니다
void Add<T>(I<T> obj) {
}
'void 추가
추가하려면 T 매개 변수를 전달해야합니다.
void Add<TI, TAny>(TI obj) where TI : I<TAny>
의 방법은'TI'입니다 제네릭 자체가 아닌 일반 매개 변수이므로 'TI
죄송합니다 -'Add' 인터페이스의 일부가 아닌'I'하지만 다른 클래스 –