這是我正在使用的代碼,它在實例化時有構建錯誤。我不知道爲什麼它沒有看到,我的SpecialHandler的類型是BaseHandler的以T設置爲SpecialEntity爲什麼泛型沒有看到我的繼承?
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