반응형
여러 제약 조건이있는 일반적인 방법
두 가지 일반 매개 변수가있는 일반 방법이 있습니다. 아래 코드를 컴파일하려고 시도했지만 작동하지 않습니다. .NET 제한입니까? 다른 매개 변수에 대해 여러 제약 조건을 가질 수 있습니까?
public TResponse Call<TResponse, TRequest>(TRequest request)
where TRequest : MyClass, TResponse : MyOtherClass
이 작업을 수행하는 것이 가능합니다. 구문이 약간 잘못되었습니다. where쉼표로 구분하지 않고 각 제한 조건에 대해 가 필요합니다 .
public TResponse Call<TResponse, TRequest>(TRequest request)
where TRequest : MyClass
where TResponse : MyOtherClass
@LukeH의 주요 답변 외에도 종속성 주입에 문제가 있으며이 문제를 해결하는 데 시간이 걸렸습니다. 같은 문제에 직면 한 사람들을 위해 공유 할 가치가 있습니다.
public interface IBaseSupervisor<TEntity, TViewModel>
where TEntity : class
where TViewModel : class
이 방법으로 해결됩니다. 컨테이너 / 서비스에서 키는 typeof이고 쉼표 (,)
services.AddScoped(typeof(IBaseSupervisor<,>), typeof(BaseSupervisor<,>));
이것은이 답변 에서 언급되었습니다 .
@LukeH의 또 다른 사용법과 함께 주요 답변 외에도 클래스 대신 여러 인터페이스를 사용할 수 있습니다. 이와 같은 (하나의 클래스와 n 카운트 인터페이스)
public TResponse Call<TResponse, TRequest>(TRequest request)
where TRequest : MyClass, IMyOtherClass, IMyAnotherClass
또는
public TResponse Call<TResponse, TRequest>(TRequest request)
where TRequest : IMyClass,IMyOtherClass
참고 URL : https://stackoverflow.com/questions/588643/generic-method-with-multiple-constraints
반응형
'development' 카테고리의 다른 글
| if (a-b <0)와 if (a <b)의 차이점 (0) | 2020.04.15 |
|---|---|
| Django ORM에서 select_related와 prefetch_related의 차이점은 무엇입니까? (0) | 2020.04.15 |
| 달러 기호 ($“string”) 란 무엇입니까? (0) | 2020.04.15 |
| 안드로이드 끝없는 목록 (0) | 2020.04.15 |
| 자체 도메인 (하위 도메인이 아님)과 함께 Google 앱 엔진을 사용하는 방법은 무엇입니까? (0) | 2020.04.15 |