내가하는 방법이있다.감지 인터페이스
public void Store<T>(T value) where T : class, IIDModel, new() {
AddModelToCache(value);
}
StoreUsingKey<T>
에서 value
매개 변수 IIDModel
를 구현하는 Store<T>
을 알 수있는 방법이 있나요? 아니면 잘못된 방향으로 가고 있습니까? 각 방법에서 new()
제약 조건을 제거 리치
대답
는 코드가 작동 할 수 있습니다. 문제는 인스턴스화 할 수있는 객체로 인터페이스를 전달하려고 시도하는 것이 었습니다.
그러나 StoreUsingKey 메서드에는이 제약 조건이 없습니다. Store 을 선택적으로 호출하려면 어떻게해야합니까? "위의 예는"IIDModel '에서'T '로 변환 할 수 없습니다. –
kim3er
이것이 작동하지 않는 것 같습니다 : 'IIDModel'은 일반 매개 변수가없는 생성자가있는 추상화되지 않은 유형이어야하며 제네릭 유형 또는 메서드의 매개 변수 'T'로 사용해야합니다. ' (T)' –
Tinister
, 클래스 제약은 붉은 청어였다. 나는 지나치게 제한적이었습니다. 두 방법 모두에서 클래스 제약 조건을 제거하면 코드가 작동하기 시작합니다. 당신의 도움을 주셔서 감사합니다. – kim3er