ras*_*305 2 c# interface class parent-child abstract
我在互联网上找不到答案,所以我会请求你的帮助.我有一个抽象类:
public abstract class AbstractClass
{
String Name { get; }
}
Run Code Online (Sandbox Code Playgroud)
儿童班1:
public class ApplicationDetailsModel : AbstractClass
{
// This will implement unique properties
}
Run Code Online (Sandbox Code Playgroud)
实现IComponent的每个类都将实现"AbstactClass"的子类.
一个示例实现:
public class ExampleClass : IComponent
{
public ApplicationDetailsModel DetailsModel;
}
Run Code Online (Sandbox Code Playgroud)
和一个界面
public interface IComponent : IPageViewModel
{
AbstractClass DetailsModel { get; }
}
Run Code Online (Sandbox Code Playgroud)
此示例无法编译,因为接口强制实现
AbstractClass DetailsModel = new ApplicationDetailsModel();
是否有正确的方法来强制在接口中实现特定抽象类的子属性?
使用约束使您的界面通用
public interface IComponent<T> : IPageViewModel
where T : AbstractClass
{
T DetailsModel {get;}
}
Run Code Online (Sandbox Code Playgroud)
举例:
public class ExampleClass : IComponent<ApplicationDetailsModel>{
{
public ApplicationDetailsModel DetailsModel { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)