我觉得自己像个傻瓜,但是这里有:
public interface IHasErrorController{
ErrorController ErrorController { get; set; }
}
public class DSErrorController: ErrorController{yadi yadi ya}
public class DSWebsiteController : Controller, IHasErrorController{
public DSErrorController ErrorController { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这给了我一个错误,说DSWebsiteController.ErrorController无法实现IHasErrorController,尽管DSErrorController是从ErrorController继承的.
此外,欢迎使用建议更好的命名,以便类型ErrorController和字段Errorcontroller看起来不一样(命名很难).
C#(目前)对[co | contra]方差支持很少; 因此,接口实现必须完全匹配,包括返回类型.为了在类API上保持你的concreate类型,我会明确地实现接口 - 即添加:
ErrorController IHasErrorControlloer.ErrorController {
get {return this.ErrorController;}
set {this.ErrorController = (DSErrorController)value;}
}
Run Code Online (Sandbox Code Playgroud)
或者,只需将属性的类型更改为ErrorController- 这可能(或可能不)给出您需要的内容.