이것은 사용중인 코드이며 인스턴스화시 빌드 오류가 발생합니다. 이 T가 SpecialEntity로 설정 내 SpecialHandler 유형의 BaseHandler의 것을 표시되지 왜 나는왜 제네릭은 내 상속을 보지 못합니까?
규정이없는 한(질문을 추론하는 내 심령 디버깅 기술을 사용하여)
static class HandlerFactory
{
public static BaseHandler<BaseEntity> Create(string typeString)
{
throw new NotImplementedException();
}
public static BaseHandler<T> Create<T>(string typeString) where T : BaseEntity {
if (typeString == "Special")
**return new SpecialHandler();** //THERE'S BUILD ERROR HERE EVEN THOUGH Special Handler is inherits from type BaseHandler<T>
else
return null;
}
}
public class BaseHandler<T> where T : BaseEntity
{
public T GetEntity()
{
throw new NotImplementedException();
}
}
public class SpecialHandler : BaseHandler<SpecialEntity> {}
public class BaseEntity{}
public class SpecialEntity : BaseEntity{}
문제의 설명과 질문의 의미를 설명해 주시겠습니까? – SWeko
관찰하고있는 행동을 기술하십시오. – Gusdor
위대한 순수 코드. 사람들이 코드를 올리라고 말하려한다면, 그 설명이 필요 없다는 것을 의미하지는 않습니다. – Tafari