public class ConfigControlBase<T> : UserControl
where T : ProviderBase
{
public T Provider { get; set; }
public void Init(T provider)
{
this.Provider = provider;
}
}
public abstract class ProviderBase
{
public abstract ConfigControlBase<ProviderBase> GetControl();
}
public class ProviderXConfigControl : ConfigControlBase<ProviderX>
{
}
public class ProviderX : ProviderBase
{
public override ConfigControlBase<ProviderBase> GetControl()
{
var confControl = new ProviderXConfigControl() as ConfigControlBase<ProviderX>;
return confControl;
}
}
return confControl;
ném một ngoại lệ:Đúc một loại nguyên tố chung xuống
thể không mặc nhiên chuyển đổi loại
ConfigControlBase<ProviderX>
đểConfigControlBase<ProviderBase>
Ẩn dụ tuyệt vời. Tôi muốn MSDN là như thế. –