인터페이스를 디자인하려고합니다.이 인터페이스는 제네릭 형식의 ID와이 인터페이스를 구현하는 클래스의 형식을 반환하는 제네릭 메서드를 갖습니다. 예를 들어 :제네릭 메서드로 인터페이스 만들기
내 질문은public interface IEntity <IDType, MethodReturnType>
{
IDType ID {get; set;}
MethodReturnType Get();
}
public class Model : IEntity<int, Model>
{
int ID {get; set; }
Model Get() { // do something }
}
, 내가 모델의 클래스에 이미이기 때문에, 그것을 입력 한 내용을 파악하기 위해 몇 가지 지능 방식이어야 IEntity의 두 번째 유형의 매개 변수로 모델에 넣어 바보 같다 (generic 형식을 사용하면 컴파일 타임 전에 결정해야 함).
인터페이스에서 Get 메서드 정의를 유지하면서 모델 유형을 제거하는 데 도움이되는 다른 솔루션이 있습니까?
ID를 사용하면 "int"를 제거 할 수 있습니까 ??? 그것은 나를 fw 4.0으로 vs 2010 년에 컴파일하는 것을 허용하지 않습니다 ... – Gusman
아니, 방법이 없습니다. 이것이 가능했다면 .. 내가 설계 한 많은 API가 훨씬 더 깨끗하게 보일 것입니다! –
다른 옵션은'MethodReturnType'을'Object'로 대체하는 것입니다. – Dialecticus